加密代码:
def aes(key,string) cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc") cipher.encrypt cipher.padding = 1 cipher.key = hex_to_bin(Digest::SHA1.hexdigest('secret_key')[0..32]) cipher_text = cipher.update(string) cipher_text << cipher.final return bin_to_hex(cipher_text).upcaseend解密代码:
def aes_decrypt(key, encrypted) encrypted = hex_to_bin(encrypted.downcase) cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc") cipher.decrypt cipher.padding = 1 cipher.key = hex_to_bin(Digest::SHA1.hexdigest('secret_key')[0..32]) d = cipher.update(encrypted) d << cipher.finalendhex_to_bin和bin_to_hex
def hex_to_bin(str) [str].pack "H*"enddef bin_to_hex(s) s.unpack('C*').map{ |b| "%02X" % b }.join('')end在我的情况下,Java代码使用默认的初始化向量,因此我没有设置任何iv,此外,那里
hex_to_bin缺少一块。因此,此后,所有程序都开始正常工作。
希望有人遇到此问题对您有所帮助。



