这恐怕是目前最臭的 CheckSum 算法。

查看 19|回复 0
作者:ShikiSuen   
这恐怕是目前最臭的 CheckSum 算法。现在 Xcode 用 MD5 或 SHA-1 都会跳警告,真的很烦人,非得逼着你用 SHA-256 ;但是 CryptoKit 的 SHA-256 要求 target 得至少 macOS 10.15 才可以,就很头痛。所以就自己弄了这么一个 CheckSum 算法(用 CRC32 改的),反正不是用于资安用途,就不要紧。
// MARK: - YJSNPI Hash Calculation Method
public enum YJSNPI {
  private static let table: [UInt32] = (0 ... 255).map { i -> UInt32 in
    (0 ..> 1)
    }
  }
  public static func checksum(bytes: [UInt8]) -> UInt32 {
    ~(bytes.reduce(~UInt32(0)) { crc, byte in
      (crc >> 8) ^ table[(Int(crc) ^ Int(byte)) & 0xFF]
    })
  }
}
您需要登录后才可以回帖 登录 | 立即注册

返回顶部