替换密码
为小量和大量文本实现了恺撒密码和维吉尼亚密码的高度性能实现。
用法
以下恺撒密码和维吉尼亚密码的例子放置在项目中的playground内。
凯撒密码
- 将pods导入您的文件;
- 实例化CaesarCipher(有关可能的自定义设置的更多信息,请参阅此处)
- 使用实例函数“encipher”来加密给定的文本,并使用“decipher”来解密给定的文本
import SubstitutionCiphers
...
let caesar = CaesarCipher(shift: 3)
let encipheredText = caesar.encipher("Text to be enciphered")
let decipheredText = caesar.decipher("Text to be deciphered")
...
要使用不同的偏移量进行加密/解密,您将需要一个CaesarCipher的新实例
维吉尼亚密码
- 将pods导入您的文件;
- 实例化VigenereCipher(有关可能的自定义设置的更多信息,请参阅此处)
- 使用实例函数“encipher”来加密给定的文本,并使用“decipher”来解密给定的文本
import SubstitutionCiphers
...
let vigenere = VigenereCipher(key: "SOME KEY")
let textEnciphered = vigenere.encipher("Text to be enciphered")
let textDeciphered = vigenere.decipher("Text to be deciphered")
...
要使用不同的密钥进行加密/解密,您将需要一个VigenereCipher的新实例
安装
Cocoapods
SubstitutionCiphers 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod 'SubstitutionCiphers'
Carthage
要使用 Carthage 将 SwifterSwift 集成到你的 Xcode 项目中,请在 Cartfile 中指定它
github "aliamcami/SubstitutionCiphersSwift" ~> 0.1.0
Swift Package Manager
您可以使用 Swift Package Manager 通过在 Package.swift 文件中添加正确描述来安装 SwifterSwift
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.Package(url: "https://github.com/aliamcami/SubstitutionCiphersSwift", majorVersion: 0.1.0),
]
)
手动
将 "SubstitutionCiphers/Class" 文件夹复制到您的项目中并使用它。
自定义
CaesarCipher 默认实例化只需提供位移数,而对于 VigenereCipher 则只需提供密钥,但您可以自定义当处理文本和用于加密文本的字母表时加密算法的行为。
字母
SCAlphabet 是一个枚举类型,表示用于密码的字符集的基本。枚举情况如下
- 可打印字符:32 到 126 的 ASCII 字符
- 大写:大写字母 A 到 Z
- 小写:小写字母 a 到 z
- 自定义:将任何自定义字符串转换为字母表,仅考虑每个字符的第一个出现
加密模式
定义了密码类的行为如下
- 强制大写:将所有给定文本和给定字母转换为大写
- 强制小写:将所有给定文本和给定字母转换为小写
- 大小写敏感:不将大写字母视为小写字母相等
- 大小写不敏感:将大写字母和小写字母视为相同
对于每种模式,如果给定文本包含字母表中未知字符,则这些字符将保持不变,加密将仅忽略这些未知字符。
许可证
SubstitutionCiphers 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。