2013-10-09 32 views
0

我正好是获得变化的输出,当我调用摘要方法(在​​Java)和CC_SHA1(在Objective-C多次。SHA1输出循环内变化

请注意,当环未被使用,我得到匹配输出。

以下是我目前使用的实现。

目标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]; 
} 

Java片段

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); 
} 

这让我搜索api文档几个小时了,但是我找不到任何有用的东西。

回答

1

一个明显的不同之处在于,您在目标C中执行的迭代次数少于在Java中执行的迭代次数。看看'<'与'< ='在两个for循环中。

+0

嘿嘿...这是一个很好的接收! – ipmcc

+0

感谢您的回答。正如您已经很清楚地注意到的那样。不要再为我自己尴尬了,我会接受你的回答。 – Leena

+0

@Leena:不需要感到尴尬,我们有*所有*曾经在那里,很多次。 –