CRDCrypt 1.0.7

CRDCrypt 1.0.7

测试已测试
语种语言 Obj-CObjective C
许可证 Apache-2.0
发布最新版本2019年4月

Chris Disdero 维护。



CRDCrypt 1.0.7

  • 作者:
  • Christopher Disdero

CRDCrypt

Build Status CocoaPods Compatible Platform

这是一个简单的直接基于 Swift 扩展,为 Data 提供了 AES 256 位加密/解密功能,支持 iOS、macOS、watchOS 和 tvOS。

概述

我需要一个简单的加密/解密字符串和其他小数据的AES 256位加密方法,并使用可选的初始化向量来增加加密模式的随机性。结果是这个小代码库,它扩展了 Swift 类 Data,提供了加密和解密方法,以及生成一个唯一的初始化向量,可以用于加密和解密调用中。

需求

  • iOS 9.0+ / macOS 10.12+ / watchOS 3.0+ / tvOS 9.0+
  • Xcode 10.2+
  • Swift 5.0+

安装

您只需将以下文件从 GitHub 树复制到您的项目中:

  • Data+MyExtensions.swift

    • 基于 Swift 的扩展,为内置的 Data 类提供加密/解密和生成初始化向量的功能。
  • NSData+MyExtensions.m + .h

    • 这是Objective C编写的一个加密/解密客户端过程,这些过程被Swift的Data类扩展所调用。

CocoaPods

或者,您可以将其作为Cocoapod进行安装

CocoaPods是Cocoa项目的依赖管理器。您可以使用以下命令进行安装

$ gem install cocoapods

构建CRDCrypt需要CocoaPods 1.7.0+

要使用CocoaPods将CRDKeychain集成到您的Xcode项目中,在您的Podfile中指定它

target 'MyApp' do
  use_frameworks!

  # Pods for MyApp
  pod 'CRDCrypt'
end

然后,运行以下命令

$ pod install

用法

该库易于使用。只需导入CRDCrypt并生成一个初始化向量

let iv = Data.generateInitializationVector()

然后,我们可以在加密调用中使用这个初始化向量来加密一些字符串数据,并使加密结果更具不可预测性,例如

let myStringToEncrypt = "This is the string I want to encrypt with the library."
let myPrivateKey = "This is my master key"
var encryptedData: Data? = nil
var myStringDecrypted: String? = nil

do {

  encryptedData = try myStringToEncrypt.data(using: .utf8)?.aes256Encrypt(withKey: myPrivateKey, initializationVector: iv)

} catch let error as NSError {

  print("\(error)")
}

解密时,我们使用与加密相同的初始化向量以及我们的密钥

if let encryptedData = encryptedData {

  do {

    myStringDecrypted = String(bytes: try encryptedData.aes256Decrypt(withKey: myPrivateKey, initializationVector: iv), encoding: .utf8)

  } catch let error as NSError {

    print("\(error)")
  }
}

print("Unencrypted: \(myStringDecrypted)")

结论

希望这个小库/框架能够帮助您在下一个Swift项目中。我会根据时间和心情进行更新,当然我也欢迎您的所有反馈。

许可证

CRDCrypt遵循Apache 2.0许可证发布。有关详细信息,请参阅LICENSE。