I am trying to create an encryption using GoLang
func Encrypt(text string) (string,error) {
secretKey := "XM1IyN4ZOJfcbDH3Md7m7XmNGGjtXMJw"
block, err := aes.NewCipher([]byte(secretKey))
if err != nil {
log.Fatal(err)
return "", err
}
plainText := []byte(text)
iv := []byte("7061737323313233")
cfb := cipher.NewCFBEncrypter(block, iv)
cipherText := make([]byte, len(plainText))
cfb.XORKeyStream(cipherText, plainText)
return base64.StdEncoding.EncodeToString(cipherText), nil
}
And then Decrypt it in Javascript
var key = CryptoJS.enc.Utf8.parse('XM1IyN4ZOJfcbDH3Md7m7XmNGGjtXMJw');
var iv = CryptoJS.enc.Utf8.parse('7061737323313233');
var encryptedData = "7sEPYaArhx0YGAqDzYHvhZFOCBvmbzAmZBCp7AwrRCiYPGlS9y+zA18qj9afqeEm00qvGBRkQA24MwK9jxStpkaS8VvGs78VyG1vt2CsEIagXFiokdj6AnuwrYt2kUp7Xex3qurYr3B4bl2jlPeA6kzB0XeG07vB5teblvvfkRgwQ3Mvph+soCPJ9byTqycdjqa4qpgWnvN3KpMWu7cmYvOITOXhv0K88SLvVKg4VRzpxJ3DtUmIF2fm8M6jQ1I6uIvNFVV3WV6pp8MDq31/xe0vFDujNBp/RYiYyB456pnj0gHPlvlVS6SblTZc11wsCU8GPClnlCyZkeIICKRKCEGyfh7tQLMRMRlcjmWDRdcMx9zFDRroNeHYeG1+b/H4TOgVQG1iqkM9O8/4TD1m2BvYe8ZH7248ceqZucFfSa0rigLZE1K1B/QnQGOfpxuTJjMkw7qdmnm4v6yYOBJPNZa1L5zo9L/RWpkSYzRcjus5wHzuyi8a";
var decrypted = CryptoJS.AES.decrypt(encryptedData, key, {
keySize: 256 / 8,
iv: iv,
mode: CryptoJS.mode.CFB,
padding: CryptoJS.pad.Pkcs7
});
var decryptedText = decrypted.toString(CryptoJS.enc.Utf8);
console.log("Decrypted Text:", CryptoJS.enc.Utf8.stringify(decrypted));
The problem is that the return string in Javascript is only upto 125 characters long, and sometimes when the text is too short it does not decrypt, is there something wrong with the configs in my decryption?
I already tried using other encryption/decryption mode but it seems it does not work either.