AES256EncryptWithKey 方法的 openssl 等效项

2024-03-04

如何使用命令行 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;
}

我尝试了以下方法(带或不带-nosalt),但没有成功:

openssl aes-256-ecb -nosalt -in original.txt -out encrypted.txt
openssl aes-128-ecb -nosalt -in original.txt -out encrypted.txt

虽然有可能,但你不应该这样做。这个 ObjC 加密代码非常糟糕。它错误地创建了密钥,这就是为什么您在使用 OpenSSL 时遇到问题(它创建密钥的效果也很差,但更好,并且以不同的方式)。如果您想要与 OpenSSL 兼容的 ObjC 加密模块,请参阅RNC加密器 https://github.com/rnapier/RNCryptor这是为了解决这个问题而设计的。如果可能的话,我会避免使用 OpenSSL,但目前我推荐没有简单的命令行替代品。

请参阅 RNCryptor 文档,了解此 ObjC 代码被破坏的原因,以及 OpenSSl 的 aes 加密例程的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AES256EncryptWithKey 方法的 openssl 等效项 的相关文章

  • 为什么在可变字典上调用 setValue:forKeyPath 不会抛出未知键路径的异常?

    我有以下代码 NSMutableDictionary dict NSMutableDictionary dictionary defs setObject NSNumber numberWithInt 100 forKey test1 te
  • UICollectionView 就像 iOS 主屏幕 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想制作一个像 iOS 主屏幕一样的 UICollectionView 我发现了几个 而且很好的 样本 例如 http mobile tu
  • NSMutableAttributedString 的自动换行

    我有 NSMutableAttributedString 并且字符串很长 我想在 UIlabel 上显示它时进行自动换行 如果是 NSString 我会继续做这样的事情 动态 UILabel 截断文本 https stackoverflow
  • 对 smtp.live.com 和 TIdSmtp(Indy、Delphi)的 SSL 支持

    我正在尝试连接到 smtp live com 发送电子邮件 live com 自 2009 年以来显然支持免费的 pop3 smtp 但这对我来说完全是新闻 当我尝试连接到 smtp live com 端口 587 时 会发生以下情况 Me
  • 如何检测 iPhone 中按下的键盘按键?

    我想检测用户何时按下任何键盘键 仅在键入任何字符时调用的任何方法 而不是在显示键盘时调用的方法 Thanks 您可以在用户每次按键时直接处理键盘事件 Swift 对于文本字段 请使用以下委托方法 func textField textFie
  • videoMinFrameDuration 已弃用

    当我将 Xcode 从 4 6 更新到 5 1 时 ios7 中不推荐使用 videoMinnFrameDuration void setFrameRate NSInteger frameRate frameRate frameRate i
  • iPhone应用程序NSNumber内存泄漏

    我遇到了内存泄漏 但我不知道它从哪里来以及如何修复它 在某些时候 我计算两个位置之间的距离 double calc self getDistance location to otherLocation NSNumber distance N
  • 如何在收到一定数量的数据后调用 Web 服务并将其加载到表视图中

    我正在开发一个项目 在该项目中 首先调用 Web 服务 我们会获取大约 20 个数据 我们将这些数据加载到表视图中 一旦我们开始向上滚动查看视图 当它达到 20 个数时 我们需要为接下来的 20 个数调用服务 就像 Facebook 所做的
  • 如何在使用图像创建视频时添加图像变化动画

    我有一组图像 我想通过按顺序播放这些图像来创建视频 我想在图像发生变化时添加不同类型的动画 建议我一些方法或任何解决方案来通过 Cocoa 框架在 Objective C 中实现此功能 这是制作图像视频的工作代码 但请建议我们在制作视频时如
  • Objective-C 复制视图

    所以我在这里有一个简短的问题 我有一个视图控制器对象的实例 让我们调用它viewCon1 并且它上面放置了几个子视图 每个子视图都具有独特的属性 让我们称呼他们吧sub1 sub2 and sub3 现在 我以编程方式添加每个子视图 执行以
  • 使用 .NET 类进行 OpenSSL 加密

    我希望创建一个使用与 OpenSSL 兼容的 NET 库的类 我知道有一个 OpenSSL Net 包装器 但我希望避免引用第 3 方 非托管代码 我并不是要讨论这是否是正确的选择 但这是有原因的 目前我有以下内容 我认为它应该与 Open
  • 如何在 Objective-C 中创建委托?

    我知道代表如何工作 也知道如何使用它们 但我该如何创建它们呢 Objective C 委托是一个已分配给delegate属性另一个对象 要创建一个 您需要定义一个实现您感兴趣的委托方法的类 并将该类标记为实现委托协议 例如 假设您有一个UI
  • NSMutableArrays

    我有一个NSMutableArray作为类的成员变量 In the h file interface bleh NSMutableArray list property readonly assign NSMutableArray list
  • 在命令行上编译 C++/CX

    我收到链接器错误fatal error C1107 could not find assembly platform winmd please specify the assembly search path using AI or by
  • 检测 iPhone 上的长按

    我正在开发一个 iPhone 应用程序 它要求我检查是否已点击按钮并按住 6 秒 然后触发一个播放某种声音的动作 我应该如何检测这个 6 秒的点击 另一方面 用户还可以持续点击按钮 6 秒 然后会触发相同的操作 我应该如何处理多次点击 我怎
  • 如何让iOS 7下的UISwitch不采用其后面视图的背景颜色?

    关闭时看起来像这样 虽然我更喜欢灰色背景 我真的必须使用 UIImageView 吗 以下是我更改 iOS7 UISwitch 的填充颜色的方法 首先您需要导入 QuartzCore import
  • 如何使财产成为财产

    我不太确定如何表达这个问题 所以我将举例说明 我想为房产做房产 我目前正在使用不同类别的属性 player Player alloc init player name PlayerName 这些属性在 Player 类中定义 并导入 Pla
  • 检查与 NSURLConnection 连接的有效 IP

    我目前有一个应用程序 它尝试根据我正在与之通信的某些服务器打开网络视图 但是 我允许用户输入自己的服务器 IP 以防 iphone ipad 和服务器 或其他设备 不在同一网络上 但是 我尝试使用 NSURLConnection 来检测是否
  • iOS中如何以url的形式发布数据?

    我想将 UITextfields 数据发送到服务器 我想发布数据 但服务器向我显示错误消息 请检查我的代码 NSURL url NSURL URLWithString http projectsatseoxperts net au fish
  • 是否可以使用 Python 中的密码安全地加密然后解密数据?

    我在 python 程序中有一些数据 我想在使用密码写入文件之前对其进行加密 然后在使用它之前读取并解密它 我正在寻找一些可以根据密码进行加密和解密的安全对称算法 这个问题 https stackoverflow com questions

随机推荐

  • 来自 Pandas 混淆矩阵的散景热图

    熊猫怎么能DataFrame显示为散景热图 https docs bokeh org en latest docs user guide categorical html heat maps https docs bokeh org en
  • 具有自定义视图和图像视图的 MKAnnotationView

    在我的地图应用程序中 我想显示一个带有图像的彩色背景圆圈 而不是显示图钉 背景圆圈的颜色 下图中的绿色阴影 是动态的 它将如下图所示 我创建了 TCircleView 它在 drawRect 中绘制颜色为了显示类似的注释 我创建了 TCir
  • 如何调试 NodeJS 中的套接字挂起错误?

    我收到以下错误 events js 48 throw arguments 1 Unhandled error event Error socket hang up at createHangUpError http js 1091 15 a
  • nuget.org:无法加载服务索引

    这实际上不是一个重复这个问题 https stackoverflow com questions 41185443 nuget connection attempt failed unable to load the service ind
  • Python OrderedDict 按日期排序

    我正在尝试使用 OrderedDict Raymond Hettingersversion http code activestate com recipes 576693 对于 pre2 7 Python 其中我的键是日期 但是它没有正确
  • 默认字典(无)

    我希望有一本包含一组状态转换的字典 我认为我可以使用 states defaultdict None 来做到这一点 但它没有按我的预期工作 例如 states defaultdict None if new state 1 states S
  • jQuery Tablesorter 的日期排序问题

    我正在尝试对具有类似列的表进行排序2009 12 17 23 59 59 0 我正在使用下面的应用排序 document ready function dataTable tablesorter 但它不适用于 yyyy mm dd 格式的日
  • 比较 numpy.save 和 h5py 的速度时如何获得一致的结果?

    我正在尝试比较两种工具的速度效率 这两种工具可以节省 2 GB 的空间numpy array到磁盘到文件 numpy save and h5py create dataset 注意 这只是第一个测试 我必须处理的真实情况是数千个大小在 1
  • R data.table 使用 lapply 创建自定义函数来创建和重新分配多个变量

    我有以下几行代码 DT flag T temp haz 1 5 DT temp na locf temp na rm FALSE pid DT agedays 61 haz 1 5 1 temp 我需要将其转换为一个函数 以便它可以处理一系
  • 哪种报告技术? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 哪种报告技术最适合最佳情况 产品类型 我现在在想3技术 嵌入式报告 Crystal Reports M
  • codeigniter + 密码需要字母和数字

    我想使用表单验证来要求同时包含字母和数字字符的密码 到目前为止 这是我想到的 this gt form validation gt set rules password Password required matches passconf
  • Rust musl Docker 镜像找不到 Cargo

    我正在尝试让 Rust 在 Docker 中运行 以将其用于 32 位 musl 构建 自从我更新它以使用新的 URL 来拉 rustup 后 我在使用 bash 交互运行容器时遇到了这个问题 root 2c3549fe3169 sampl
  • Sqlite:自己行中的小计又名“汇总”

    我正在寻找一种方法来模拟其他基于 sql 的 dbms 中可用的 汇总 需要明确的是 我知道如何获得运行小计 这是not我在追求什么 我也知道我可以通过编程来做到这一点 但是 如果可以使用一个 或几个 sql 语句来完成 我宁愿这样做 例如
  • Eclipse - 期间发生内部错误:“计算启动按钮工具提示”

    我早些时候启动了 Eclipse 来记下一个片段 当我尝试运行一个新项目时 遇到了以下错误 期间发生内部错误 计算启动按钮工具提示 当我将鼠标悬停在顶部栏中的运行图标上时 或者右键单击资源管理器窗口中的类并选择任何运行 调试选项时 就会显示
  • scipy 中 line_search 的示例

    我正在寻找使用的例子scipy optimize line search 我不太明白这个函数如何与多变量函数一起使用 我写了一个简单的例子 import scipy as sp import scipy optimize def test
  • 如何在 Seaside 回调中访问 jQuery 事件对象

    基本上 我想将以下内容翻译成 Seaside Smalltalk myDiv bind click function e console log e 除此之外我不想console log事件 但在我的 ajax 回调中访问它 最有希望的方法
  • 返回上一页适用于模拟器,不适用于 iOS 设备 jquerymobile

    我正在用这种方法更改页面 mobile changePage Preview html transition slide role page changeHash true 这就是我的预览页面的样子 div class prew div c
  • 如何将字典写入文件?

    我有一个 FileHelper 类 其中实现了 3 个方法 其工作是将字典内容写入文件 这些方法是 func storeDictionary dictionary Dictionary
  • JavaConfig:替换 aop:advisor 和 tx:advice

    我想知道是否可以将这段 xml 配置映射到 Spring JavaConfig
  • AES256EncryptWithKey 方法的 openssl 等效项

    如何使用命令行 openssl 获得与以下 Objective C 加密方法相同的结果 NSData AES256EncryptWithKey NSString key NSData returnData nil char keyPtr k