System.out.println("明文:" + plainText);
System.out.println("密钥:" + keyText);
System.out.println("密文:" + encryptedString);
System.out.println("解密后:" + decryptedString);
}
输出结果如下:
will encryptedData with UTF-8 encoding =6D696B69E8A5BFE6B8B87C7C206D696B697869796F75403132362E636F6D
did encryptedData =D72EA24833C4731FE292DE0F335D62E8C5B3C459BD72FD396819E0CE1C60B314
will decryptedData=D72EA24833C4731FE292DE0F335D62E8C5B3C459BD72FD396819E0CE1C60B314
did decryptedData with UTF-8 encoding =6D696B69E8A5BFE6B8B87C7C206D696B697869796F75403132362E636F6D
did decryptedString with UTF-8 encoding =miki西游|| 明文:miki西游|| 密钥:abcd1234
密文 Base64 编码:D72EA24833C4731FE292DE0F335D62E8C5B3C459BD72FD396819E0CE1C60B314
解密后:miki西游 will encryptedData with UTF-8 encoding=6D696B69E8A5BFE6B8B87C7C206D696B697869796F75403132362E636F6D
did encryptedData =D72EA24833C4731FE292DE0F335D62E8C5B3C459BD72FD396819E0CE1C60B314
will decryptedData =D72EA24833C4731FE292DE0F335D62E8C5B3C459BD72FD396819E0CE1C60B314
did decryptedData with UTF-8 encoding=6D696B69E8A5BFE6B8B87C7C206D696B697869796F75403132362E636F6D
did decryptedString with UTF-8 encoding =miki西游|| 明文:miki西游|| 密钥:abcd1234
密文:1y6iSDPEcx/ikt4PM11i6MWzxFm9cv05aBngzhxgsxQ=
这样,我们就实现了JAVA中的加密和解密。但要在客户端也实现这样的加密和解密算法才算最终完成任务。因此,我们还需要实现Objective-C中的DES加密和解密操作。
static Byte iv[8]={1,2,3,4,5,6,7,8};
加密方法encryptUseDES:key:如下
- (NSString *) encryptUseDES:(NSString *)plainText key:(NSString*)key
{
NSString *ciphertext =nil;
NSData* data=[plainTextdataUsingEncoding: NSUTF8StringEncoding];
NSLog(@"plainTextBytes with UTF-8 encoding:%@",[XYDESdataToHex:data]);
NSUInteger bufferSize=([data length] + kCCKeySizeDES) & ~(kCCKeySizeDES -1);
charbuffer[bufferSize];
memset(buffer, 0,sizeof(buffer));
size_t bufferNumBytes;
CCCryptorStatuscryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding,
[keyUTF8String],
kCCKeySizeDES,
iv ,
[databytes],
[datalength],
buffer,
bufferSize,
&bufferNumBytes);
if (cryptStatus ==kCCSuccess) {
NSData *data = [NSDatadataWithBytes:buffer length:(NSUInteger)bufferNumBytes];
NSLog(@"objccipherTextBytes:%@",[XYDES dataToHex:data]);
NSLog(@"JavacipherTextBytes:%@",@"D72EA24833C4731FE9960B48DB705E7AF99AB772C6E6E19CE8F3F8EA16EE5297");
ciphertext = [GTMBase64stringByEncodingData:data];
NSLog(@"objccipherTextBase64:%@",ciphertext);
NSLog(@"JavacipherTextBase64:%@",@"1y6iSDPEcx/plgtI23Beevmat3LG5uGc6PP46hbuUpc=");
}
return ciphertext;
}
解密方法decryptUseDES:key:如下
-(NSString*) decryptUseDES:(NSString*)cipherText key:(NSStr