Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和Objective-c中的SHA1输出在一个循环中变化_Java_Objective C_Encryption_Tripledes - Fatal编程技术网

Java和Objective-c中的SHA1输出在一个循环中变化

Java和Objective-c中的SHA1输出在一个循环中变化,java,objective-c,encryption,tripledes,Java,Objective C,Encryption,Tripledes,当我多次调用摘要方法(java)和CC_SHA1(Objective-c)时,我碰巧得到了不同的输出 请注意,当不使用循环时,我会得到匹配的输出 以下是我目前使用的实现 目标C代码段 NSString *haha= [NSString stringWithFormat:@"%@%@",sPassPhrase,sSaltValue]; NSData *abKey0 = [haha dataUsingEncoding:NSASCIIStringEncoding]; NSMutableData *ab

当我多次调用摘要方法(java)和CC_SHA1(Objective-c)时,我碰巧得到了不同的输出

请注意,当不使用循环时,我会得到匹配的输出

以下是我目前使用的实现

目标C代码段

NSString *haha= [NSString stringWithFormat:@"%@%@",sPassPhrase,sSaltValue];
NSData *abKey0 = [haha dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData *abKey = [NSMutableData dataWithData:abKey0];

unsigned char digest[20];
for(int i=1;i<iIterations;i++)
{
    CC_SHA1(abKey.bytes, abKey.length, digest);
    abKey = [NSMutableData dataWithBytes:digest length:20];
}
NSString*haha=[NSString stringWithFormat:@“%@%@”,SPASSPHASE,sSaltValue];
NSData*abKey0=[haha dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData*abKey=[NSMutableData dataWithData:abKey0];
无符号字符摘要[20];

对于(int i=1;i一个明显的区别是,在objective C中进行的迭代比在Java中进行的迭代要少。请看“呵呵……这是一个很好的发现!谢谢你的回答。正如你所指出的,情况正是如此。为了不让自己再感到尴尬,我接受你的回答。@Leena:不必尴尬我们都去过那里,很多次了。
String haha = sPassPhrase + sSaltValue;
byte[] abKey = haha.getBytes("US-ASCII");
MessageDigest oSHA1 = MessageDigest.getInstance("SHA-1");

for (int i = 1; i <= iIterations; i++) 
{
    abKey = oSHA1.digest(abKey);
}