Javascript with SJCL lib,在 GCM 模式下解密 AES
Javascript with SJCL lib, decrypt AES in GCM mode
我尝试在GCM模式下使用Javascript中的SJCL库(从CasperJS中(使用AES解密密码。当我执行下面的代码时,我收到的错误是:
error: TypeError: 'undefined' 不是函数(计算 'b.encrypt([0,0,0,0]('(
代码:
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 文档告诉我的那样调用解密函数。
加密是使用以下代码在python中完成的:https://github.com/bozhu/AES-GCM-Python 我发现的是这个线程:Python中GCM模式下的AES
用一种语言加密和用另一种语言解密时,我有什么特别需要考虑的吗?恐怕如此...我可以以某种方式检查加密信息是否有效吗 AES/GCM?我真的不确定如何在这里进行,因为我不是JS或Python或加密专家。
有关背景信息:我尝试在纯python中实现或多或少安全的加密(因此我可以在Google App Engine上运行它(和纯JS中的合适解密。
感谢您的任何帮助。
您无法直接解密尝试将加密的字符串,密码,IV和身份验证数据转换为bitArray。
const data = sjcl.mode.gcm.decrypt(cipherArray, encryptedBitArray, iv, authArray, 128);
这里的 128 是大小,您也可以使用 256。
还要尝试在 IV 后附加加密字符串。
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);
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 执行动态模式弹出
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- AngularJS ui路由器html5模式中断路由
- 包含圆括号的JavaScript Regex模式
- 显示模块模式在Knockout中设置模型的新实例
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 使用模式格式化Number类型输入中的值
- Javascript with SJCL lib,在 GCM 模式下解密 AES
- SJCL CBC模式未解密