我正在尝试使用CBC模式和kCCOptionPKCS7Padding填充实现Blowfish算法.场景就像在IOS(Objective C)和PHP这两个系统之间执行编码和解码.但是,两个平台的加密结果并不相同.
这是我的目标C源代码.
ViewController.m
#import "ViewController.h"
#import <CommonCrypto/CommonCryptor.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// configure paremetre
NSData *IV = [@"aaaaaaaa" dataUsingEncoding:NSUTF8StringEncoding];// Constant IV
NSError *error;
NSData *key = [@"37501370571307510" dataUsingEncoding:NSUTF8StringEncoding]; // Constant Key
NSString *stringOriginal = @"Did you decrypt it ?";
NSData *dataOriginal = [stringOriginal dataUsingEncoding:NSUTF8StringEncoding];;
// Encryption
NSData *dataEncrypted = [self doBlowfish:dataOriginal
context:kCCEncrypt
key:key
options:kCCOptionPKCS7Padding
iv:IV
error:&error];
NSString *encryptedBase64String = [dataEncrypted base64EncodedStringWithOptions:0];
// Decryption
NSData *dataToDecrypt = [[NSData alloc] …Run Code Online (Sandbox Code Playgroud) Diffie-Hellman 密钥交换算法使用诸如2^8 mod nwheren是素数之类的操作。
使用质数而不是其他数字的原因是什么?
ios ×2
autolayout ×1
blowfish ×1
cocoa-touch ×1
cryptography ×1
objective-c ×1
php ×1
storyboard ×1