ikhasi_crypto 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/crypto.rb +24 -15
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3343232c78433c1d6ca07fd00b0901de575a298d
|
4
|
+
data.tar.gz: 7acc03f4e4b4901fd21b69f0e23baf2a5c7d38d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3829852cc358de2289a7092b1a475f8b2b65a9712a4939512c4152a6d44874fae9f08061bbeba93b1ab2f45c57a78089aa73a283c8c7f5f7ecd7880da78d29b
|
7
|
+
data.tar.gz: a01b8af8d6f3c4c758ebcf2b463b5dda123bb0ab733d668b8de1e510fb2ff6b27599e0362d9cc319e6587ada65231f6c9830d28828cc5448cb3a26a205d3dfcc
|
data/lib/crypto.rb
CHANGED
@@ -2,25 +2,34 @@ require 'openssl'
|
|
2
2
|
require 'securerandom'
|
3
3
|
require 'base64'
|
4
4
|
require 'uri'
|
5
|
+
|
5
6
|
class Crypto
|
6
7
|
def self.encrypt(string)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
begin
|
9
|
+
des = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")
|
10
|
+
des.encrypt
|
11
|
+
des.key = ENV['SECURE_KEY']
|
12
|
+
des.iv = iv = SecureRandom.hex(4)
|
13
|
+
data = des.update(string) + des.final
|
14
|
+
data = iv + data
|
15
|
+
data = Base64.encode64(data)
|
16
|
+
data = URI.escape(data, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
17
|
+
rescue Exception => e
|
18
|
+
puts e.message
|
19
|
+
end
|
15
20
|
end
|
16
21
|
|
17
22
|
def self.decrypt(string)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
begin
|
24
|
+
des = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")
|
25
|
+
des.decrypt
|
26
|
+
des.key = ENV['SECURE_KEY']
|
27
|
+
string = URI.unescape(string)
|
28
|
+
string = Base64.decode64(string)
|
29
|
+
des.iv = string.slice!(0,8)
|
30
|
+
des.update(string) + des.final
|
31
|
+
rescue Exception => e
|
32
|
+
puts e.message
|
33
|
+
end
|
25
34
|
end
|
26
35
|
end
|