Swift 的 Luhn 算法的基本独立实现。对于在任意基数中生成和验证校验位很有用。
考虑将其移植到 Swift 的 https://github.com/benhodgson/baluhn。
来自维基百科:
Luhn 算法或 Luhn 公式,也称为“模 10”或“模 10 算法”,是一个简单的校验公式,用于验证各种识别号码,如信用卡号码、IMEI号码、美国和加拿大国家提供者标识符号码以及加拿大社会保险号码
Swift 包管理器即将推出。
下载项目并将 Sources
文件夹内容复制到您要使用它的项目中。
Luhn 提供了两个函数:`verify` 和 `generate`。
`generate` 根据给定基数计算给定输入字符串的 Luhn 校验字符。该字符应附加到输入字符串以生成有效的 Luhn 字符串。
`verify` 测试字符串是否为给定基数的有效 Luhn 字符串。默认情况下,luhn 以基数 10 运行
要使用它,只需在项目中导入 Luhnimport Luhn
克隆并打开 playground,查看库的实时用法。
// Genereta a value to have a valid luhn using the decimal alphabet
try Luhn.generate(baseString: "7992739871") // Generate 3
// Verify if the string is a valid luhn using the decimal alphabet
try Luhn.verify(string: "79927398713") // A valid lunh
try Luhn.verify(string: "79927398714") // An invalid luhn
// Using a defined alphabet
let alphabet = "abcdefghijklmnopqrstuvwxyz"
try Luhn.generate(baseString: "swift", alphabet: alphabet) // Returns l
try Luhn.verify(string: "swiftl", alphabet: alphabet) // A valid luhn
try Luhn.verify(string: "swiftz", alphabet: alphabet) // An invalid luhn
特别感谢 @benhodgson
Luhn 采用 MIT 许可证发布。有关详情,请参阅 LICENSE。