【发布时间】:2019-09-17 01:18:12
【问题描述】:
我在 Java 中有以下代码。
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(password.getBytes());
kgen.init(INIT_LENGTH, secureRandom);
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES");
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] result = cipher.doFinal(byteContent);
return result;
我需要在 JavaScript/Node.js 中实现它
我不知道如何在 JavaScript 中实现它从 secretString 到 KeyGenerator 生成的密钥
来自评论部分:
这是我的代码:
function encodeDesCBC( textToEncode, keyString, ivString ) {
const key = Buffer.from(keyString.substring(0, 8), 'utf8')
const iv = Buffer.from(ivString.substring(0, 8), 'utf8')
const cipher = crypto.createCipheriv('aes-128-cbc', key, iv)
let c = cipher.update(textToEncode, 'utf8', 'base64')
c += cipher.final('base64')
return base64url.escape(c)
}
我的问题是secureRandom 和KeyGenerator。我不知道如何在nodejs中实现它
【问题讨论】:
-
您已经想通了要使用
cryptojs并且您被secretString 和密钥生成所困扰。也许您应该进一步搜索如何使用 cryptojs 或在此处发布您尝试的代码,并准确告诉我们您不了解的内容。现在你的问题看起来你甚至没有尝试任何东西(请证明我们错了)。 -
不要把它当作私人的!只是看不出你在那里付出的努力。很抱歉我不能帮助你,但也许你对这个网站感兴趣 :asecuritysite.com/encryption/js10 在那里你可以选择你喜欢的加密类型,它会向你展示它的外观示例和 如何实现它。希望对你有帮助!
-
感谢@GameDroids。下次我会更小心的
标签: java node.js encryption aes cryptojs