首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AES还是SHA256的sjcl.encrypt

使用AES还是SHA256的sjcl.encrypt
EN

Stack Overflow用户
提问于 2012-12-04 23:04:31
回答 3查看 4.4K关注 0票数 1

我正在使用SJCL library 来加密/解密消息。我的问题是,我不知道哪个是用AES还是SHA256

下面是我的代码:

代码语言:javascript
复制
var h = sjcl.codec.hex, count = 2048 ;
salt = h.fromBits(sjcl.random.randomWords('10','0'));
var key = h.fromBits( sjcl.misc.pbkdf2(somePassword, h.toBits(salt), count) ) ;

接下来,我可以像这样加密/解密

代码语言:javascript
复制
var encMessage = sjcl.encrypt(key, message) ;
sjcl.decrypt(key, encMessage) ;

AES或SHA256或其他什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 00:17:11

用于密钥生成的pbkdf2使用带有SHA256HMAC。但是AES-CCM的sjcl的默认加密密钥大小仅为128比特。如果你想要AES-CCM-256,我认为你需要做以下事情,你也不必直接调用pbkdf2

代码语言:javascript
复制
var encMessage =sjcl.encrypt(somePassword,message,{count:2048,salt:salt,ks:256});
票数 5
EN

Stack Overflow用户

发布于 2012-12-04 23:59:04

SHA256和AES是两种不同类型的算法。

SHA256是一个密码学哈希函数:http://en.wikipedia.org/wiki/SHA-2

AES是一种加密算法:http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

因此,在您的情况下,当使用加密时,您实际上是在使用AES。

票数 6
EN

Stack Overflow用户

发布于 2012-12-04 23:59:31

基于对the source的粗略检查,我建议它在CCM mode中使用AES。

SJCL homepage解释了所使用的加密技术,尽管不可否认的是,每个函数的文档根本没有解释它。

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

https://stackoverflow.com/questions/13705850

复制
相关文章

相似问题

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