首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript with SJCL lib,在GCM模式下解密AES

Javascript with SJCL lib,在GCM模式下解密AES
EN

Stack Overflow用户
提问于 2014-12-16 04:01:11
回答 1查看 884关注 0票数 0

我尝试在GCM模式下用Javascript中的SJCL库(从CasperJS中)来解密一个密码。当我执行下面的代码时,我收到的错误是:

错误:未定义:‘TypeError’不是函数(计算'b.encrypt(0,0,0,0)')

代码:

代码语言:javascript
复制
var masterkey = '39537496606860671661230109146651832357';
var cipher = 'Sa2Rk3bbdiaI7mO/';
var iv = '59804781381539321505720964105';
var authdata = '199590863504973848417387014842606357793';

var decff = sjcl.mode.gcm.decrypt(masterkey, cipher, iv, authdata);
console.log (decff);

正如您所看到的,我基本上只是按照SJCL文档告诉我的那样调用了decrypt函数。

加密是用Python语言完成的,代码如下:https://github.com/bozhu/AES-GCM-Python我找到的是这个线程:AES in GCM mode in Python

在用一种语言加密和用另一种语言解密时,有什么需要特别考虑的吗?恐怕是这样..。我可以检查加密信息是否有效的AES/GCM?我真的不确定如何继续这里,因为我不是JS或Python或加密专家。

背景信息:我尝试用纯python实现或多或少安全的加密(这样我就可以在Google App Engine上运行它),并用纯JS实现合适的解密。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-03-05 14:22:41

您不能直接解密,请尝试将加密的字符串、密码、IV和身份验证数据转换为bitArray。

代码语言:javascript
复制
 const data = sjcl.mode.gcm.decrypt(cipherArray, encryptedBitArray, iv, authArray, 128);

这里128是大小,你也可以使用256。

还要尝试在你的IV后面附加加密的字符串。

代码语言:javascript
复制
 const bitArray = sjcl.codec.base64.toBits(content);
  const bitArrayCopy = bitArray.slice(0);
  const ivdec = bitArrayCopy.slice(0, 4);
  const encryptedBitArray = bitArray.slice(4);
  var key = sjcl.codec.base64.toBits("2d73c1dd2f6a3c981afc7c0d49d7b58f");
  let cipher = new sjcl.cipher.aes(key);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27492135

复制
相关文章

相似问题

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