lancet
lancet copied to clipboard
V2 版本 AesCbcDecrypt 与 老版本(V1.2.9)不兼容
V2版本: func AesCbcDecrypt(encrypted, key []byte) []byte { size := len(key) if size != 16 && size != 24 && size != 32 { panic("key length shoud be 16 or 24 or 32") }
block, _ := aes.NewCipher(key)
iv := encrypted[:aes.BlockSize]
encrypted = encrypted[aes.BlockSize:]
mode := cipher.NewCBCDecrypter(block, iv) # iv 使用的 encrypted ,而在老版本中使用的是 key
mode.CryptBlocks(encrypted, encrypted)
decrypted := pkcs7UnPadding(encrypted)
return decrypted
}
下面是老版本: func AesCbcDecrypt(encrypted, key []byte) []byte { block, _ := aes.NewCipher(key) blockSize := block.BlockSize() blockMode := cipher.NewCBCDecrypter(block, key[:blockSize])
decrypted := make([]byte, len(encrypted))
blockMode.CryptBlocks(decrypted, encrypted)
decrypted = pkcs7UnPadding(decrypted)
return decrypted
}