使用Sjcl我尝试写一点服务来发送和接收来自我的javascript应用程序的加密数据。SJCL的问题“无法读取属性”取代'未定义的“
不幸的是,sjcl documentation缺少关于如何处理其加密数据的信息。 他们的encrypt method返回一个包含多个属性的对象,其中我只能猜测是什么。
{"iv":"i0t5BttfXwtY6hxuFSZxJg==",
"v":1,
"iter":1000,
"ks":128,
"ts":64,
"mode":"ccm",
"cipher":"aes",
"salt":"MZ8hpbz+5hU=",
"ct":"n5mR5jwawYwsaUV0xbcYXrcCXPWjR5qMG23qU5Spguz4jpjG5QdFMWSf"}
我可以识别iter
,ks
,ts
,mode
,cipher
和salt
。我的猜测是ct
是密文,代表加密数据。但v
和iv
是什么?
我试图解密我的密文给ct
作为参数,甚至试图让整个结果作为参数,但它始终只是产生错误:
var result = sjcl.json.encrypt(
'pw123',
'{text: "this should be decrypted"}',
parameters,
rp
);
var originalText = sjcl.json.decrypt(
'pw123',
result.ct,
parameters,
rp);
// Results in:
// Uncaught TypeError: Cannot read property 'replace' of undefined
如何我ct
使用他们decrypt方法我解密? 任何有这方面的经验,可以举一个简单的例子?
我的问题是,我没有看到,结果是一个已经字符串化JSON,而不是一个对象。 我试图访问ct。 而在另一种情况下,我覆盖了几个已经在结果集中的参数。 感谢您指点我正确的方向。 – 2015-02-06 14:20:58