encrypt_data 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/encrypt_data.rb +35 -0
- data/lib/encrypt_data/crypt.rb +28 -0
- data/lib/encrypt_data/version.rb +3 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5988dbbf9e4a3893db46498222effc8eec6873d83e5c4c51a02f30a44a36fa19
|
4
|
+
data.tar.gz: 643d72f5196c744819dc72c9fabd8dd399ed0d02301bd017cea3025ce0e82efc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 63b829ad931b3345f36dfbdd4a083f463f546d750f18adf8167f62d8eb4f31175c47e6906fa3fe6225921eba77d2c130256af0b56564f64575ae42de6d6ce6a8
|
7
|
+
data.tar.gz: e5b21faa8b4012594b704259d92d15d3b81ef9639d0e909007d47126959648cb0c92466db74939ba9fceb88e31bf6f3b7eaa27dd7177e84ca14502a338b2e384
|
data/lib/encrypt_data.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require "encrypt_data/version"
|
2
|
+
require "encrypt_data/crypt"
|
3
|
+
require 'base64'
|
4
|
+
require 'openssl'
|
5
|
+
|
6
|
+
module EncryptData
|
7
|
+
class Error < StandardError; end
|
8
|
+
class Convert < Crypt
|
9
|
+
|
10
|
+
def initialize(key = nil)
|
11
|
+
@key = key unless key.nil?
|
12
|
+
end
|
13
|
+
|
14
|
+
def load(value)
|
15
|
+
begin
|
16
|
+
return if value.nil?
|
17
|
+
Marshal.load(
|
18
|
+
Crypt.decrypt(
|
19
|
+
Base64.decode64(value), @key))
|
20
|
+
rescue Exception => e
|
21
|
+
puts "\e[31m#{e.message}\e[0m"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def dump(value)
|
26
|
+
begin
|
27
|
+
Base64.encode64(
|
28
|
+
Crypt.encrypt(
|
29
|
+
Marshal.dump(value), @key))
|
30
|
+
rescue Exception => e
|
31
|
+
puts "\e[31m#{e.message}\e[0m"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module EncryptData
|
2
|
+
class Crypt
|
3
|
+
class << self
|
4
|
+
def encrypt(value, key)
|
5
|
+
@key = key
|
6
|
+
crypt(:encrypt, value)
|
7
|
+
end
|
8
|
+
|
9
|
+
def decrypt(value, key)
|
10
|
+
@key = key
|
11
|
+
crypt(:decrypt, value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def encryption_key
|
15
|
+
@key || ENV['EncryptDataKey']
|
16
|
+
end
|
17
|
+
|
18
|
+
ALGO = 'aes-256-cbc'.freeze
|
19
|
+
def crypt(cipher_method, value)
|
20
|
+
cipher = OpenSSL::Cipher.new(ALGO)
|
21
|
+
cipher.send(cipher_method)
|
22
|
+
cipher.pkcs5_keyivgen(encryption_key)
|
23
|
+
result = cipher.update(value)
|
24
|
+
result << cipher.final
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: encrypt_data
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Shubham Prajapat
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-01-31 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.17'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.17'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: String encryption is a popular subject in all programming languages.
|
42
|
+
A simple algorithm in ruby for string encryption.
|
43
|
+
email:
|
44
|
+
- spkumar7786@gmail.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- lib/encrypt_data.rb
|
50
|
+
- lib/encrypt_data/crypt.rb
|
51
|
+
- lib/encrypt_data/version.rb
|
52
|
+
homepage: https://github.com/shubhamprajapat1/encrypt_data
|
53
|
+
licenses:
|
54
|
+
- MIT
|
55
|
+
metadata:
|
56
|
+
homepage_uri: https://github.com/shubhamprajapat1/encrypt_data
|
57
|
+
source_code_uri: https://github.com/shubhamprajapat1/encrypt_data
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
requirements: []
|
73
|
+
rubygems_version: 3.1.4
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Simple String encryption
|
77
|
+
test_files: []
|