no-style-please2-plugins 0.4.3 → 0.5.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 +4 -4
- data/gem.gemspec +1 -1
- data/lib/enc.rb +22 -10
- data/lib/version/version.rb +1 -1
- data/test.rb +53 -17
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ce217454acd101d7d2885044d9675b60e5bc7404a454a622d2b1210b22be12a
|
4
|
+
data.tar.gz: babeb067c289bdd08b650639d50973ea111b92b202fd979a0e2b79d5470dba02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ea12bce7eee576a03595b149a526f8a3286677099ad8778d00e81ed9a71e68e83128d1fe44449114ead0dcc64fff13625b932d78b793d959514f4d1f437ef23
|
7
|
+
data.tar.gz: a5e75cc87025cdc350bf6b3184271bd55636d25cd0d3e2c6a7c418b3fbcff39408696600acd7cb2095a4a6c5b6554e9a56d6802f3bf4d3665f7dfc9ae5842cfa
|
data/gem.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
|
35
35
|
spec.add_dependency "jekyll", "~>4.0"
|
36
36
|
spec.add_dependency "ltec", "~> 0.1.2"
|
37
|
-
spec.add_dependency "salsa20", "~> 0.1.3"
|
37
|
+
# spec.add_dependency "salsa20", "~> 0.1.3"
|
38
38
|
spec.add_dependency "digest"
|
39
39
|
# Uncomment to register a new dependency of your gem
|
40
40
|
# spec.add_dependency "example-gem", "~> 1.0"
|
data/lib/enc.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'openssl'
|
2
2
|
require 'base64'
|
3
|
-
require 'salsa20'
|
4
3
|
require 'digest'
|
5
4
|
require 'ltec'
|
6
5
|
require "jekyll"
|
@@ -58,6 +57,25 @@ module Jekyll
|
|
58
57
|
end
|
59
58
|
end
|
60
59
|
module EncFilter
|
60
|
+
|
61
|
+
def genKey(password)
|
62
|
+
salt = 'this is a salt string 20221019'
|
63
|
+
iter = 12345
|
64
|
+
key_len = 32
|
65
|
+
key = OpenSSL::KDF.pbkdf2_hmac(password, salt: salt, iterations: iter,
|
66
|
+
length: key_len, hash: "sha256")
|
67
|
+
return key
|
68
|
+
end
|
69
|
+
|
70
|
+
def encrypt(msg,password)
|
71
|
+
cipher = OpenSSL::Cipher::AES.new(256, :GCM).encrypt
|
72
|
+
iv = cipher.random_iv
|
73
|
+
cipher.iv = iv
|
74
|
+
cipher.key = genKey password
|
75
|
+
encrypted = cipher.update(msg) + cipher.final
|
76
|
+
return 'E1.' + Base64.strict_encode64(iv + encrypted + cipher.auth_tag)
|
77
|
+
|
78
|
+
end
|
61
79
|
def get_encrypt_id(content,page)
|
62
80
|
key = EncFilterTool.getKey(content,page)
|
63
81
|
if key != nil && key.length > 0
|
@@ -68,15 +86,9 @@ module Jekyll
|
|
68
86
|
end
|
69
87
|
|
70
88
|
def encrypt_content(content,page,prefix)
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
iv = Digest::MD5.hexdigest(content).downcase()
|
75
|
-
ivHex = iv[0...16]
|
76
|
-
iv = ivHex.scan(/../).map { |x| x.hex.chr }.join
|
77
|
-
encryptor = Salsa20.new(key, iv)
|
78
|
-
encrypted_text = encryptor.encrypt(content)
|
79
|
-
return ivHex + ":" + Base64.strict_encode64(encrypted_text)
|
89
|
+
psw = EncFilterTool.getKey(content,page)
|
90
|
+
psw = prefix + psw + prefix
|
91
|
+
return encrypt content,psw
|
80
92
|
end
|
81
93
|
|
82
94
|
|
data/lib/version/version.rb
CHANGED
data/test.rb
CHANGED
@@ -1,18 +1,54 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
|
3
|
+
require 'openssl'
|
4
|
+
require 'base64'
|
5
|
+
def genKey(password)
|
6
|
+
salt = 'this is a salt string 20221019'
|
7
|
+
iter = 12345
|
8
|
+
key_len = 32
|
9
|
+
key = OpenSSL::KDF.pbkdf2_hmac(password, salt: salt, iterations: iter,
|
10
|
+
length: key_len, hash: "sha256")
|
11
|
+
return key
|
12
|
+
end
|
13
|
+
|
14
|
+
def encrypt(msg,password)
|
15
|
+
|
16
|
+
cipher = OpenSSL::Cipher::AES.new(256, :GCM).encrypt
|
17
|
+
iv = cipher.random_iv
|
18
|
+
cipher.iv = iv
|
19
|
+
cipher.key = genKey password
|
20
|
+
encrypted = cipher.update(msg) + cipher.final
|
21
|
+
return 'E1.' + Base64.strict_encode64(iv + encrypted + cipher.auth_tag)
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def decrypt(enstring,password)
|
27
|
+
b64 = enstring[3..-1]
|
28
|
+
data = Base64.strict_decode64 b64
|
29
|
+
|
30
|
+
len = data.bytesize
|
31
|
+
iv = data[0...12]
|
32
|
+
auth_tag = data[0...16] #data[len-16..-1]
|
33
|
+
encdata = data[12...len-16]
|
34
|
+
|
35
|
+
|
36
|
+
cipher = OpenSSL::Cipher::AES.new(256, :GCM).decrypt
|
37
|
+
cipher.iv = iv
|
38
|
+
cipher.key = genKey password
|
39
|
+
# cipher.auth_tag = '1234567890123456'
|
40
|
+
|
41
|
+
result = cipher.update(encdata)
|
42
|
+
return result
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
msg = '我的 12a23007'
|
48
|
+
z = encrypt msg,'123'
|
49
|
+
puts z
|
50
|
+
|
51
|
+
puts z[3..-1]
|
52
|
+
|
53
|
+
m = decrypt z ,'123'
|
54
|
+
puts m
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: no-style-please2-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vitock
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.1.2
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: salsa20
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1.3
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.3
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: digest
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|