以下是一个在iOS中使用OC代码进行ECB模式加密的示例,使用了PKCS5Padding填充,数据块大小为128位,密码为"PMe4bvLko",偏移量为0,输出结果为Base64编码,字符集为UTF8:

#import <CommonCrypto/CommonCryptor.h>
#import "NSData+Base64.h"

NSString *encryptECBWithPKCS5PaddingAndBase64Encoding(NSString *plainText, NSString *password) {
    NSData *plainData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSData *passwordData = [password dataUsingEncoding:NSUTF8StringEncoding];
    
    size_t bufferSize = [plainData length] + kCCBlockSizeAES128;
    void *buffer = malloc(bufferSize);
    
    size_t numBytesEncrypted = 0;
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionECBMode|kCCOptionPKCS7Padding, [passwordData bytes], kCCKeySizeAES128, NULL, [plainData bytes], [plainData length], buffer, bufferSize, &numBytesEncrypted);
    
    if (cryptStatus == kCCSuccess) {
        NSData *encryptedData = [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
        NSString *base64EncodedString = [encryptedData base64EncodedString];
        return base64EncodedString;
    }
    
    free(buffer);
    return nil;
}

NSString *plainText = @"Hello World!";
NSString *password = @"PMe4bvLko";
NSString *encryptedString = encryptECBWithPKCS5PaddingAndBase64Encoding(plainText, password);
NSLog(@"Encrypted String: %@", encryptedString);

这里使用了一个名为NSData+Base64的类别,用于将加密后的NSData对象转换为Base64编码的字符串。你可以使用以下方法将其添加到项目中:

  1. 创建一个名为NSData+Base64.h的新文件,并将以下代码粘贴到文件中:
#import <Foundation/Foundation.h>

@interface NSData (Base64)

+ (NSData *)dataFromBase64String:(NSString *)base64String;
- (NSString *)base64EncodedString;

@end
  1. 创建一个名为NSData+Base64.m的新文件,并将以下代码粘贴到文件中:
#import "NSData+Base64.h"

@implementation NSData (Base64)

+ (NSData *)dataFromBase64String:(NSString *)base64String {
    NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
    return decodedData;
}

- (NSString *)base64EncodedString {
    NSString *base64String = [self base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    return base64String;
}

@end

完成后,你可以使用上面的encryptECBWithPKCS5PaddingAndBase64Encoding函数来加密数据,并将加密后的字符串保存在encryptedString变量中

IOS OC代码模式ECB 填充pkcs5padding 数据块128 密码PMe4bvLko 偏移量无 输出base64 字符集UTF8

原文地址: https://www.cveoy.top/t/topic/hIF7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录