作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用命令行 openssl 获得与以下objective-c 加密方法相同的结果?
- (NSData *)AES256EncryptWithKey:(NSString *)key {
NSData *returnData = nil;
char keyPtr[kCCKeySizeAES256+1];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
size_t numBytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmAES128,
kCCOptionPKCS7Padding | kCCOptionECBMode,
keyPtr,
kCCBlockSizeAES128,
NULL,
[self bytes],
dataLength,
buffer,
bufferSize,
&numBytesEncrypted);
if (cryptStatus == kCCSuccess) {
returnData = [[NSData alloc] initWithBytes:buffer length:numBytesEncrypted];
}
free(buffer);
return returnData;
}
openssl aes-256-ecb -nosalt -in original.txt -out encrypted.txt
openssl aes-128-ecb -nosalt -in original.txt -out encrypted.txt
最佳答案
虽然有可能,但您不应该这样做。这个 ObjC 加密代码很破。它错误地创建了 key ,这就是为什么您在使用 OpenSSL 时遇到问题的原因(它也很差地创建了 key ,但更好,并且以不同的方式)。如果您想要兼容 OpenSSL 的 ObjC 加密模块,请参阅 RNCryptor它旨在处理这个问题。如果可能的话,我会避免使用 OpenSSL,但目前没有我推荐的简单命令行替代品。
请参阅 RNCryptor 的文档了解为什么这个 ObjC 代码被破坏,以及 OpenSSl 的 aes 加密例程的问题。
关于objective-c - openssl 等效于 AES256EncryptWithKey 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231033/
问题是关于 iOS5 应用程序的。我有一个 View Controller ,其中有一些 UITextFields。我想使用 AES-256 加密数据。 其实我也不知道加解密需要加什么prerequi
我是一名优秀的程序员,十分优秀!