iOS Objective-C PBEWithMD5AndDES 암호화
성명:이것은 저의 작업(몰아가기)수요(올리기)요(올리기)입니다.oc접촉한 지 보름도 안 된 상황에서 완성한 것입니다.어떤 잘못이 있으면 양해해 주시고 지적을 환영합니다
본문
잔말 말고 바로 코드에 올리시오
#include
#include
+(NSData*) cryptPBEWithMD5AndDES:(CCOperation)op usingData:(NSData*)data withPassword:(NSString*)password andSalt:(NSData*)salt andIterating:(int)numIterations {
unsigned char md5[CC_MD5_DIGEST_LENGTH];
memset(md5, 0, CC_MD5_DIGEST_LENGTH);
NSData* passwordData = [password dataUsingEncoding:NSUTF8StringEncoding];
CC_MD5_CTX ctx;
CC_MD5_Init(&ctx);
CC_MD5_Update(&ctx, [passwordData bytes], [passwordData length]);
CC_MD5_Update(&ctx, [salt bytes], [salt length]);
CC_MD5_Final(md5, &ctx);
for (int i=1; i
직접 Stackoverflow에서 벗겨낸 코드입니다.Java 부분 코드는 JAVA 복호화 14 - 대칭 암호화 알고리즘 - PBE 알고리즘 (K1024 참조)
단순 테스트
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *dataStr = @"hello, world";
NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
NSData *salt = [@"salt" dataUsingEncoding:NSUTF8StringEncoding];
//
NSData *encryptData = [test cryptPBEWithMD5AndDES:(kCCEncrypt) usingData:data withPassword:@"passwd" andSalt:salt andIterating:20];
NSLog(@"%@", encryptData);
//
NSData *decryptData=[test cryptPBEWithMD5AndDES:(kCCDecrypt) usingData:encryptData withPassword:@"passwd" andSalt:salt andIterating:20];
NSLog(@"%@", decryptData);
NSLog(@"text:%@",[[NSString alloc] initWithData:decryptData encoding:NSUTF8StringEncoding]);
}
return 0;
}
출력
2019-02-27 20:49:43.566299+0800 OcDemo[5046:282195] <99ffe825 57031ab9 980bfb8e 33baefc1>
2019-02-27 20:49:43.566527+0800 OcDemo[5046:282195] <68656c6c 6f2c2077 6f726c64>
2019-02-27 20:49:43.566580+0800 OcDemo[5046:282195] text:hello, world
Program ended with exit code: 0
몇 가지 주의
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.