Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web applications 如何使用带有TweetJS的密码加密密钥?_Web Applications_Javascript - Fatal编程技术网

Web applications 如何使用带有TweetJS的密码加密密钥?

Web applications 如何使用带有TweetJS的密码加密密钥?,web-applications,javascript,Web Applications,Javascript,这是我极力推荐的 我有一个项目,团队希望在ID上显示编码为base64的密钥对。当然,他们不希望只显示密钥,而是存储加密版本的密钥。像这样的 // do the encryption let keyPair = tweetnacl.sign.keyPair(); let publicKey = tweetnacl.util.encodeBase64(keyPair.publicKey); let signature = tweetnacl.util.encodeBase64(tweetnacl.

这是我极力推荐的

我有一个项目,团队希望在ID上显示编码为base64的密钥对。当然,他们不希望只显示密钥,而是存储加密版本的密钥。像这样的

// do the encryption
let keyPair = tweetnacl.sign.keyPair();
let publicKey = tweetnacl.util.encodeBase64(keyPair.publicKey);
let signature = tweetnacl.util.encodeBase64(tweetnacl.sign.detached(tweetnacl.util.decodeUTF8(certData), keyPair.secretKey));
let secretKey = tweetnacl.util.encodeBase64(keyPair.secretKey);
let encryptedSecretKey = CryptoJS.AES.encrypt(secretKey, this.props.data.password).toString();
有人建议我不要使用CryptoJS。是否有更好的方法仅使用tweetnacl来实现这一点


谢谢。

tweetnacl有一个称为secretbox的对称加密实现。您可以像使用AES一样加密任何您想要的内容,包括您的密钥

伪代码:

var smkey = stringToUint8Array(keystring); // must be 32 bytes, pad it if you have to
var nonce = nacl.randomBytes(nacl.box.nonceLength);
var encryptedSecretKey = nacl.secretbox(secretKey, nonce, smkey);

然后,您可以将加密的Uint8Array转换为string或base64并使用它。

我希望您已经使用了而不是放弃了该特定实现。另外,你的链接上写着测试版。该库是稳定的,API是冻结的,但尚未独立审查。。在这里,你可能需要重新思考很多问题。这似乎是tweet的一个问题