(data, key string)
| 39 | } |
| 40 | |
| 41 | func AesDecryptByECB(data, key string) string { |
| 42 | // 判断key长度 |
| 43 | keyLenMap := map[int]struct{}{16: {}, 24: {}, 32: {}} |
| 44 | if _,ok := keyLenMap[len(key)]; !ok { |
| 45 | } |
| 46 | // 反解密码base64 |
| 47 | originByte, _ := base64.StdEncoding.DecodeString(data) |
| 48 | // 密钥和待加密数据转成[]byte |
| 49 | keyByte := []byte(key) |
| 50 | // 创建密码组,长度只能是16、24、32字节 |
| 51 | block, _ := aes.NewCipher(keyByte) |
| 52 | // 获取密钥长度 |
| 53 | blockSize := block.BlockSize() |
| 54 | // 创建保存解密变量 |
| 55 | decrypted := make([]byte, len(originByte)) |
| 56 | for bs, be := 0, blockSize; bs < len(originByte); bs, be = bs+blockSize, be+blockSize { |
| 57 | block.Decrypt(decrypted[bs:be], originByte[bs:be]) |
| 58 | } |
| 59 | // 解码 |
| 60 | return string(PKCS7UNPadding(decrypted)) |
| 61 | } |
| 62 | // 解码 |
| 63 | func PKCS7UNPadding(originDataByte []byte) []byte { |
| 64 | length := len(originDataByte) |
no test coverage detected