Попытка эмулировать алгоритм в 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 (его точно нет в документации) .
У меня есть этот код на другом языке, поэтому я знаю, что этот алгоритм работает не совсем правильно.
РЕДАКТИРОВАТЬ: вот метод, который я интерпретировал на странице проблемы
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
}
На самом деле это не возвращает никаких данных, возможно, я что-то напортачил, когда изменил его с encripting на decripting