javascript – Node.js加密输入/输出类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Node.js加密输入/输出类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2043字,纯文字阅读大概需要3分钟。
内容图文
我试图找出Node.js加密库以及如何正确使用它来解决我的问题.
我的目标是:
十六进制字符串中的键3132333435363738313233343536373831323334353637383132333435363738
十六进制字符串中的文本46303030303030303030303030303030
十六进制字符串中的加密文本70ab7387a6a94098510bf0a6d972aabe
我通过AES 256的实施和http://www.hanewin.net/encrypt/aes/aes-test.htm的网站测试
这就是我所要做的,它没有像我期望的那样工作.我最好的猜测是密码函数的输入和输出类型不正确.唯一有效的是utf8如果我使用hex它失败并出现v8错误.关于我应该转换或改变以使其发挥作用的任何想法.
var keytext = "3132333435363738313233343536373831323334353637383132333435363738";
var key = new Buffer(keytext, 'hex');
var crypto = require("crypto")
var cipher = crypto.createCipher('aes-256-cbc',key,'hex');
var decipher = crypto.createDecipher('aes-256-cbc',key,'hex');
var text = "46303030303030303030303030303030";
var buff = new Buffer(text, 'hex');
console.log(buff)
var crypted = cipher.update(buff,'hex','hex')
在这个例子中加密的输出是8cfdcda0a4ea07795945541e4d8c7e35,这不是我所期望的.
解决方法:
当您从中导出测试向量的网站使用ecb模式时,您的代码使用的是aes-256-cbc.此外,您正在调用createCipher,但使用ECB时,您应该使用不带IV的createCipheriv(参见nodeJS: can’t get crypto module to give me the right AES cipher outcome),
以下是一些演示此内容的代码:
var crypto = require("crypto");
var testVector = { plaintext : "46303030303030303030303030303030",
iv : "",
key : "3132333435363738313233343536373831323334353637383132333435363738",
ciphertext : "70ab7387a6a94098510bf0a6d972aabe"};
var key = new Buffer(testVector.key, "hex");
var text = new Buffer(testVector.plaintext, "hex");
var cipher = crypto.createCipheriv("aes-256-ecb", key, testVector.iv);
var crypted = cipher.update(text,'hex','hex');
crypted += cipher.final("hex");
console.log("> " + crypted);
console.log("? " + testVector.ciphertext);
运行该代码的输出并不完全符合我的预期,但加密输出的第一个块符合您的预期.可能需要调整的另一个参数:
$node test-aes-ecb.js
> 70ab7387a6a94098510bf0a6d972aabeeebbdaed7324ec4bc70d1c0343337233
? 70ab7387a6a94098510bf0a6d972aabe
内容总结
以上是互联网集市为您收集整理的javascript – Node.js加密输入/输出类型全部内容,希望文章能够帮你解决javascript – Node.js加密输入/输出类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。