OpenResty luacrypto:无法解密由Crypto-JS加密的密码(默认为AES)

时间:2018-08-09 10:29:52

标签: encryption aes cryptojs openresty

https://github.com/mkottman/luacrypto

我无法解密使用浏览器Javascript使用Crypto-JS加密的内容:

// Encrypt
var ciphertext = CryptoJS.AES.encrypt('testingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtestingtesting', '&&nH8P3bxk+?C4gR');

// Decrypt
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), '&&nH8P3bxk+?C4gR');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);

console.log(plaintext);

我可以使用以下方法在Java中对其进行解密:

Cipher.getInstance("AES/CBC/PKCS5Padding")

但是,我明白了

error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

当我尝试使用LuaCrypto进行操作时。这是代码:

local crypto = require("crypto")
local cipherText = 'U2FsdGVkX1859eIyt4M7VHNBl9BGMdsemPYAADKmqs9sltwKINfzVMci0Vw1NLr73Iti67zQ0+JoqVcL59Gcp+4R5NY6wg2n3r0wqLcQRc7PkIGpgup1UJp4DzhXSIGHz08Eu/nEbt3jAh3S4GVUoVFbXLluf/BvedTGdsqcN2EPL9S/WQOc5QDyl9OQjpBl+QS56nWL0DO6iR/6CIoEuQ+zC/7KTpBw2jQf8sxuDNptZzwKLlDi2sWSaeCkvPj+m8zheAlnZzVc+L5JeLdcx7WkIRQImNs9P5bkhXmiK2nZnw4yco3QHbzRkRBJiB3HgdYDauHsuKmR21zv9VLjAcGTrZjiUbtrBfuTRawKOiAFm599Inbq+Ugu9n4RelQ2CTdxwDfe3ZE3kscP3dyAmg=='

ngx.say(crypto.decrypt('aes-256-cbc', cipherText, '&&nH8P3bxk+?C4gR'))

0 个答案:

没有答案