首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用SJCL解密AES

如何用SJCL解密AES
EN

Stack Overflow用户
提问于 2013-12-29 09:03:18
回答 2查看 1.7K关注 0票数 1

我想使用Stanford Javascript Crypto Library (SJCL)通过给定的密码和密钥来解密AES,但我无法传递密钥:

代码语言:javascript
复制
var key = 'key';
var cipher = 'abjslö';
var aes = new sjcl.cipher.aes(key);

var plaintext = aes.decrypt(cipher);
alert(plaintext);

这不管用。参考文档,关键字必须是“4、6或8个单词的数组”。

如何做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2013-12-29 09:54:08

密钥必须是AES密钥,即128、192或256位。然而,SJCL库在32位机器“字”上操作。查看开源库的源代码或其中一个测试,以了解要通过哪些测试。请注意,密码不是密钥,您需要基于密码的密钥派生函数(如PBKDF2 )才能将密码转换为密钥。

票数 0
EN

Stack Overflow用户

发布于 2020-03-03 18:00:15

加密

  1. 创建一个随机单词数组,它将用作我们的IV(初始化向量)。然后,您需要使用随机密钥创建位数组(大小取决于加密级别和类型),然后使用密钥数组创建密码。
  2. ,最后使用密码和IV对数据进行编码。(您还可以添加元数据以检查authenticity)
  3. Now,只需将IV和加密的位数组连接在一起,最后将其转换为base64字符串并通过。

请注意,如果没有IV,则无法解密AES-GCM。

解密

  1. 在解密时从加密的字符串中切片IV。
  2. 现在使用密钥创建密码,并使用该密码来解密字符串。

你可以找到完整的代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20821085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档