V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ShikiSuen
V2EX  ›  程序员

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

  •  
  •   ShikiSuen · 312 天前 · 3038 次点击
    这是一个创建于 312 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这恐怕是目前最臭的 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 ..< 8).reduce(UInt32(i)) { c, _ in
          ((c % 2) * 0xE114_D514) ^ (c >> 1)
        }
      }
      public static func checksum(bytes: [UInt8]) -> UInt32 {
        ~(bytes.reduce(~UInt32(0)) { crc, byte in
          (crc >> 8) ^ table[(Int(crc) ^ Int(byte)) & 0xFF]
        })
      }
    }
    
    9 条回复    2023-05-22 11:42:38 +08:00
    msg7086
        1
    msg7086  
       312 天前
    这么臭的哈希不要也罢(
    MrKrabs
        2
    MrKrabs  
       312 天前
    Al0rid4l
        3
    Al0rid4l  
       312 天前
    点进来发现不是我想的那个臭
    ShikiSuen
        4
    ShikiSuen  
    OP
       312 天前
    @Al0rid4l 难道你预想的臭与 YJSNPI 无关?
    Al0rid4l
        5
    Al0rid4l  
       312 天前
    @ShikiSuen 啊, 没注意看代码, 不好意思, 现在是我想的那个了(满意离开
    ShikiSuen
        6
    ShikiSuen  
    OP
       312 天前   ❤️ 2
    @Al0rid4l 0xE114_D514
    Mimei
        7
    Mimei  
       312 天前
    臭啊,真太臭了(雾
    JackyCDK
        8
    JackyCDK  
       312 天前
    臭啊,太臭了(捂鼻
    newmlp
        9
    newmlp  
       311 天前
    我一般用这种加密算法都是从 mbedtls 里面抠出来模块。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5895 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:13 · PVG 10:13 · LAX 19:13 · JFK 22:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.