尝试在Go中模拟基本上是AES ECB模式加密的算法.
这是我到目前为止所拥有的
- func Decrypt(data []byte) []byte {
- cipher,err := aes.NewCipher([]byte(KEY))
- if err == nil {
- cipher.Decrypt(data,PKCS5Pad(data))
- return data
- }
- return nil
- }
我还有一个PKCS5Padding算法,经过测试和工作,它首先填充数据.我无法找到有关如何在Go AES包中切换加密模式的任何信息(绝对不是在the docs中).
我有这个代码用另一种语言,这就是我知道这个算法不能正常工作的方式.
- func AESECB(ciphertext []byte) []byte {
- cipher,_ := aes.NewCipher([]byte(KEY))
- fmt.Println("AESing the data")
- bs := 16
- if len(ciphertext)%bs != 0 {
- panic("Need a multiple of the blocksize")
- }
- plaintext := make([]byte,len(ciphertext))
- for len(plaintext) > 0 {
- cipher.Decrypt(plaintext,ciphertext)
- plaintext = plaintext[bs:]
- ciphertext = ciphertext[bs:]
- }
- return plaintext
- }
这实际上并没有返回任何数据,也许我在将其从编写脚本转换为decripting时搞砸了
欧洲央行故意被排除在外,因为它不安全,请查看
issue 5597.