lancet icon indicating copy to clipboard operation
lancet copied to clipboard

V2 版本 AesCbcDecrypt 与 老版本(V1.2.9)不兼容

Open haiziyhf opened this issue 8 months ago • 1 comments

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

}

haiziyhf avatar Jun 27 '24 08:06 haiziyhf