Module: Unidom::Common::Concerns::Aes256Cryptor::ClassMethods
- Defined in:
- app/models/unidom/common/concerns/aes256_cryptor.rb
Instance Method Summary collapse
-
#aes_256_padding ⇒ Object
返回 AES-256 加密使用的 padding 。如果有 #cryption_padding 方法,则返回 #cryption_padding 方法的值,否则返回 9 。.
-
#decrypt(encoded, key: nil) ⇒ Object
将密文 encoded 用秘钥 key 进行解密。如: decrypt encoded, key: aes256_key.
-
#encrypt(message, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行加密。如: encrypt ‘clear text’ 或 encrypt ‘clear text’, key: aes256_key.
- #encryption_algorithm ⇒ Object
-
#hex_decrypt(encoded, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行解密,并转换成16进制表达。如: self.hex_decrypt ‘clear text’, key: aes256_key.
-
#hex_encrypt(message, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行加密,并转换成16进制表达。如: self.hex_encrypt ‘clear text’, key: aes256_key.
Instance Method Details
#aes_256_padding ⇒ Object
返回 AES-256 加密使用的 padding 。如果有 #cryption_padding 方法,则返回 #cryption_padding 方法的值,否则返回 9 。
88 89 90 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 88 def aes_256_padding respond_to?(:cryption_padding) ? cryption_padding : 9 end |
#decrypt(encoded, key: nil) ⇒ Object
将密文 encoded 用秘钥 key 进行解密。如:decrypt encoded, key: aes256_key
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 72 def decrypt(encoded, key: nil) raise ArgumentError.new('The encoded argument is required.') if encoded.blank? raise ArgumentError.new('The key argument is required.') if key.blank? cipher = OpenSSL::Cipher::AES.new(256, 'CBC') cipher.decrypt cipher.padding = aes_256_padding cipher.key = key cipher.update(encoded)+cipher.final end |
#encrypt(message, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行加密。如:encrypt ‘clear text’ 或encrypt ‘clear text’, key: aes256_key
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 55 def encrypt(, key: nil) raise ArgumentError.new('The message argument is required.') if .blank? raise ArgumentError.new('The key argument is required.') if key.blank? cipher = OpenSSL::Cipher::AES.new(256, 'CBC') cipher.encrypt cipher.padding = aes_256_padding cipher.key = key cipher.update()+cipher.final end |
#encryption_algorithm ⇒ Object
46 47 48 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 46 def encryption_algorithm 'AES-256-CBC' end |
#hex_decrypt(encoded, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行解密,并转换成16进制表达。如:self.hex_decrypt ‘clear text’, key: aes256_key
102 103 104 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 102 def hex_decrypt(encoded, key: nil) Unidom::Common::Numeration.hex decrypt(Unidom::Common::Numeration.rev_hex(encoded), key: key) end |
#hex_encrypt(message, key: nil) ⇒ Object
将明文 message 用秘钥 key 进行加密,并转换成16进制表达。如:self.hex_encrypt ‘clear text’, key: aes256_key
95 96 97 |
# File 'app/models/unidom/common/concerns/aes256_cryptor.rb', line 95 def hex_encrypt(, key: nil) Unidom::Common::Numeration.hex encrypt(, key: key) end |