MIHCrypto 0.4.1

MIHCrypto 0.4.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年3月

Michael HOhl 维护。



MIHCrypto 0.4.1

  • Michael Hohl

OpenSSL 是最强大的 SSL 和 TLS 库,它封装了一个完整的加密库。该库是用纯 C 编写的,由于其巨大规模和设计不佳的 C 接口,初学者入门非常困难。

MIHCrypto 库的目标是提供一个面向对象的接口,允许开发者使用 OpenSSL libCrypto 库的强大功能来编写简单、干净的代码。由于 OpenSSL 是一个非常大的库,所以目前(尚)没有全部被 MIHCrypto 封装。由于我开发这个库是因为个人需求,功能重点在于现代加密方法,但欢迎任何人为库贡献其他部分。

开始使用

示例代码

MIHCrypto 基于一些较少数量的协议声明(在 MIHCrypto/Core 中),所有加密算法都实现了这些协议。因此,您只需使用少数几个接口即可使用不同的加密方法进行加密和解密。

id<MIHSymmetricKey> symmetricKey = ...
NSError *encryptionError = nil;
NSData *messageData = [@"My top secret message" dataByUsingEncoding:NSUTF8Encoding];
NSData *encryptedData = [symmetricKey encrypt:messageData error:&encryptionError];

这些密钥既可以从文件中加载,也可以使用 MIHKeyFactory 的实现生成。

MIHAESKeyFactory *factory = [[MIHAESKeyFactory alloc] init];
id<MIHSymmetricKey> aesKey = [factory generateKey];

如果需要更多示例代码,请查看单元测试或查看 文档

架构

MIHCrypto 基于五个核心协议,这些协议被各种算法和方法实现。

  • MIHKeyFactory - 用于生成新的密钥
  • MIHSymmetricKey - 表示对称密钥(如 AES 或 DES),可以用来加密和解密数据
  • MIHPublicKey - 表示公钥(如 RSA PUBKEY),可以用来加密数据并验证签名
  • MIHPrivateKey - 表示私钥(如 RSA private key),可以用来解密数据并签名消息
  • MIHHashAlgorithm - 表示哈希函数,只有一个方法用于创建传入数据的哈希值

要求

MIHCrypto 需要 Xcode 4 及以上版本,目标为 iOS 5.0 及以上或 Mac OS 10.7 Mountain Lion(64 位具有现代 Cocoa 运行时)及以上。

关于

如前所述,OpenSSL是一个非常强大且庞大的项目,因此这个库目前不支持它的所有功能,但会根据需要添加新功能。目前支持以下加密方法:

  • AES(分组密码)
  • BIGNUM(离散数学)
  • DES(分组密码)
  • MD5(哈希算法)
  • RSA(公钥加密)
  • SHA, SHA256, SHA384, SHA512(哈希算法)

以下方法正在开发中,可能很快就会发布

  • ECC(公钥加密)

任何人都可以添加对其他方法的额外支持。

贡献者

许可证

MIHCrypto可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。