diff --git a/platformapi/jdapi/jdapi.go b/platformapi/jdapi/jdapi.go index 97d3e278..64ad81f9 100644 --- a/platformapi/jdapi/jdapi.go +++ b/platformapi/jdapi/jdapi.go @@ -472,7 +472,7 @@ func JDDecodeToData(appSecret, data string) ([]byte, error) { if err != nil { return nil, err } - resp, err := utils.AESCBCDecpryt(sDec, []byte(key), []byte(iv)) + resp, err := utils.AESCBCDecprytJD(sDec, []byte(key), []byte(iv)) if err != nil { return nil, err } diff --git a/utils/utils_crypt.go b/utils/utils_crypt.go index 3596ee68..31ea76e7 100644 --- a/utils/utils_crypt.go +++ b/utils/utils_crypt.go @@ -18,7 +18,7 @@ func AESCBCEncpryt(data, aesKey, iv []byte) (encryptedData []byte, err error) { return encryptedData, nil } -func AESCBCDecpryt(encryptedData, aesKey, iv []byte) (decryptedData []byte, err error) { +func AESCBCDecprytJD(encryptedData, aesKey, iv []byte) (decryptedData []byte, err error) { c, err := aes.NewCipher(aesKey) if err != nil { return nil, err @@ -31,6 +31,19 @@ func AESCBCDecpryt(encryptedData, aesKey, iv []byte) (decryptedData []byte, err return decryptedData, nil } +func AESCBCDecpryt(encryptedData, aesKey, iv []byte) (decryptedData []byte, err error) { + c, err := aes.NewCipher(aesKey) + if err != nil { + return nil, err + } + cfbdec := cipher.NewCBCDecrypter(c, iv[:c.BlockSize()]) + decryptedData = make([]byte, len(encryptedData)) + cfbdec.CryptBlocks(decryptedData, encryptedData) + + decryptedData = PKCSUnPadding(decryptedData) + return decryptedData, nil +} + // AESCBC16Decrypt 抖音十六位解密 func AESCBC16Decrypt(key, iv, src []byte) ([]byte, error) { decrypted := make([]byte, len(src))