测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年9月 |
SwiftSwift 版本 | 3.0.1 |
SPM支持 SPM | ✓ |
由 Alexis Aubry Radanovic 维护。
XOR 是一个 Swift 库,允许您计算两个整数数组的异或(XOR)。
异或(XOR)比较两个数字的位。操作返回一个新数字,其位在输入位不同时设置为 1,在输入位相同时设置为 0。
图片来自Swift编程语言书籍,CC by 4.0
此算法通常用于加密和数学。
将此行添加到您的 Package.swift
文件中
.Package(url: "https://github.com/alexaubry/XOR.git", majorVersion: 1, minor: 0)
您可以为任何符合 Swift 本地 Integer
协议(即 Int
、UInt8
等)的 Array 计算异或。
要这样做,请在整数数组上使用 xor(key:)
方法。
let array = [0x1a,0x2b,0x3c,0x4d,0x5e,0x6f]
let key = [0x84,0x1b,0x76,0x91,0xfa,0x55]
let result = array.xor(key: key)
// result = [0x9e,0x30,0x4a,0xdc,0xa4,0x3a]
您也可以通过使用相同样键在 XOR 结果上调用 xor(key:)
方法来获取原始消息。
let originalMessage = result.xor(key: key)
// originalMessage = [0x1a,0x2b,0x3c,0x4d,0x5e,0x6f]
示例
let message = [0x1a,0x2b]
let key = [0x3c,0x4d,0x5e,0x6f]
// message will be XOR-ed as [0x00,0x00,0x1a,0x2b]
let message = [0x1a,0x2b,0x3c,0x4d]
let key = [0x5e,0x6f]
// the key will be [0x00,0x00,0x5e,0x6f]
0
。示例
let message = [0x1a,0x2b,0x3c]
let key = [0x1a,0x4d,0x5e]
// message will be XOR-ed as [0x2b,0x3c] and the key will be [0x4d,0x5e]
祝你玩得开心