【发布时间】:2015-04-25 05:26:34
【问题描述】:
这是一个与帖子相关的问题:https://groups.google.com/forum/#!topic/crypto-js/t_HeWo5QhLk
我已经尝试过帖子中提到的解决方案,但仍然无法找出我的代码的问题:
使用 Crypto.js
var key= CryptoJS.PBKDF2("gf8uny", "2mnfpLsa+5I=", { keySize: 256/32, iterations: 1000 });
console.log(key.toString());
console.log(btoa(key.toString()));
//OUTPUT: MDBkN2E5MWZkZjAzYTk5MWVkMzI0OTE1YWM4OTNmMDhkOTlmY2E0NTRmN2M0MTY5YTFhYzc2M2M1ZjMzZTY0Zg==
在 iOS 中使用 CommonCrypto:
NSMutableData *webKey = [NSMutableData dataWithLength:64];
NSData *salt = [@"2mnfpLsa+5I=" dataUsingEncoding:NSUTF8StringEncoding];
NSString* password = @"gf8uny";
CCKeyDerivationPBKDF(kCCPBKDF2, password.UTF8String, password.length, salt.bytes,salt.length, kCCPRFHmacAlgSHA1, 1000, webKey.mutableBytes, webKey.length);
NSString* skey = [webKey base64EncodedStringWithOptions:0];
NSLog(@"key %@",skey);
//OUTPUT: ANepH98DqZHtMkkVrIk/CNmfykVPfEFpoax2PF8z5k+jrwa0yTNt0tQedQ4bxqV/T0gXbsyKHiVx8DuJdlkufA==
两个代码中的输出字符串都是base64编码的。
谁能指出这段代码有什么问题?
谢谢!
【问题讨论】:
标签: javascript ios cryptojs pbkdf2