作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在当前的应用程序中实现河豚算法,但出现错误
#import "NSData+Base64Utilities.h"
我必须添加哪个框架或文件才能消除此错误?
我正在使用以下代码,我遵循的方法正确吗?
define PADDING_PHRASE @" "
import "CryptoUtilities.h"
import "blowfish.h"
import "NSData+Base64Utilities.h"
@implementation CryptoUtilities
+ (NSString *)blowfishEncrypt:(NSData *)messageData usingKey:(NSData *)secretKey
{
NSMutableData *dataToEncrypt = [messageData mutableCopy];
NSMutableData *emptyData = [[PADDING_PHRASE dataUsingEncoding:NSUTF8StringEncoding] mutableCopy];
emptyData.length = 8 - [dataToEncrypt length] % 8;
// Here we have data ready to encipher
[dataToEncrypt appendData:emptyData];
BLOWFISH_CTX ctx;
Blowfish_Init (&ctx, (unsigned char*)[secretKey bytes], [secretKey length]);
NSRange aLeftRange, aRightRange;
NSData *aLeftBox, *aRightBox;
unsigned long dl = 0, dr = 0;
for (int i = 0; i < [dataToEncrypt length]; i += 8) { // Divide data into octets...
// …and then into quartets
aLeftRange = NSMakeRange(i, 4);
aRightRange = NSMakeRange(i + 4, 4);
aLeftBox = [dataToEncrypt subdataWithRange:aLeftRange];
aRightBox = [dataToEncrypt subdataWithRange:aRightRange];
// Convert bytes into unsigned long
[aLeftBox getBytes:&dl length:sizeof(unsigned long)];
[aRightBox getBytes:&dr length:sizeof(unsigned long)];
// Encipher
Blowfish_Encrypt(&ctx, &dl, &dr);
// Put bytes back
[dataToEncrypt replaceBytesInRange:aLeftRange withBytes:&dl];
[dataToEncrypt replaceBytesInRange:aRightRange withBytes:&dr];
}
return [dataToEncrypt getBase64String];
}
最佳答案
NSData+Base64Utilities.h
看起来像是为 NSData 添加 Base64 支持的类别的头文件。
该错误告诉您编译器找不到该类别的文件。您需要将它们添加到您的项目中。
编辑添加
如果您的目标是 iOS7,那么您可以使用处理 base64 编码的新 NSData 方法。您不需要使用您尝试查找的类别。
关于macos - 河豚加密解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18919205/
我有以下 bash 脚本,可以将blowfish 自动插入到 phpMyAdmin 的 config.inc.php 中: #!/bin/bash randomBlowfishSecret=$(ope
我有以下 bash 脚本,可以将blowfish 自动插入到 phpMyAdmin 的 config.inc.php 中: #!/bin/bash randomBlowfishSecret=$(ope
您建议使用哪种 Blowfish objective-c 实现? (或者我可能只是错过了一些可用的标准实现?) 最佳答案 请记住,Objective-C 是 C 的超集,因此您不需要特定的 Objec
我是一名优秀的程序员,十分优秀!