java代码importjava.security.MessageDigest;//importsun.misc.BASE64Encoder;publicclassSecurityUtil{publicstaticStringencryptPassword(Stringpassword)throwsException{returnge...
java代码
import java.security.MessageDigest;
//import sun.misc.BASE64Encoder;
public class SecurityUtil {
public static String encryptPassword(String password) throws Exception {
return getSHA(password);
}
public static String getSHA(String vars) throws Exception {
MessageDigest md5 = MessageDigest.getInstance("SHA-1");
md5.update(vars.getBytes("UTF-8"));
byte[] digesta = md5.digest();
BASE64Encoder base64 = new BASE64Encoder();
return base64.encode(digesta);
}
public static void main(String[] arg) throws Exception {
System.out.println(encryptPassword("000000"));
}
}
加密后输出:yYSu0BSux2I6VPBZHaB6hf1Ldi0=
object-c代码
+(NSString*) digest:(NSString*)input
{
//const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
const
char *cstr=[input cStringUsingEncoding:NSUTF16StringEncoding];
//const char *cstr="000000";
NSData *data = [NSData
dataWithBytes:cstr length:input.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length,
digest);
//NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
NSMutableString*
output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
输出000000后输出:c984aed014aec7623a54f0591da07a85fd4b762d
好像是差在编码方式或是初位上,请高人指点。
我想object-c加密后与java的一样。
展开