zoukankan      html  css  js  c++  java
  • Go语言解密上篇中用java aes实现的加密

    上一篇java aes文件加解密中加密的梅须逊雪三分白,雪却输梅一段香。使用go语言解密。

    解密代码如下:

    AESUtil.go

    package util
    
    import (
        "crypto/cipher"
        "crypto/aes"
        "encoding/hex"
        "fmt"
    )
    
    type Aes struct {
    }
    
    //解密
    func (this *Aes) CBCDecrypter(key []byte, content_str string) (strDesc string, err error) {
        content,_ :=hex.DecodeString(content_str)
        block, err := aes.NewCipher(key)
        if err != nil {
            panic(err)
        }
    
        if len(content) < aes.BlockSize {
            panic("content too short")
        }
        //初始化向量,和上一篇中java加密使用的iv相同
        iv :=[]byte("abcdefghijk1mnop")
        // CBC mode always works in whole blocks.
        if len(content)%aes.BlockSize != 0 {
            panic("content is not a multiple of the block size")
        }
        mode := cipher.NewCBCDecrypter(block, iv)
    
        // CryptBlocks可以原地更新
        mode.CryptBlocks(content, content)
        //fmt.Println(strings.Trim(string(content),"u0005")+ "++")
        fmt.Println(string(content))
        return string(content), nil
    }

    测试方法为:

    func TestAesDecrypt(t *testing.T) {
        aes :=Aes{}
        //key为上一篇java中加密使用的key,content_str为梅须逊雪三分白,雪却输梅一段香加密后的字符串。
        key :=[]byte("0123456789abcdef")
        content_str :="a5856355ef87955f0f112970495502ebe61b9bce4998bc777c9b383d608c1ba2da97f377914354d2e0d6500d1dac786aa69e593a67a17030389624223c5ee8fd"
        aes.CBCDecrypter(key, content_str)
    }

    运行测试方法得到如下解密内容,可见已完成解密:

    梅须逊雪三分白,雪却输梅一段香。

    注意:这里输出的是以u0005为分隔符,其他为空的6个字符串,第一个字符串为梅须逊雪三分白,雪却输梅一段香。可用如下方法截取:

    strings.Split(content, "u0005")[0]
  • 相关阅读:
    mysql排序对空值的处理
    Lambda表达式要点
    nginx Provisional headers are shown
    JAVA使用POI如何导出百万级别数据(转)
    idea 自定义注释模板
    idea使用配置
    Caused by: java.util.concurrent.RejectedExecutionException: Thread pool is EXHAUSTED! Thread Name:
    Java HotSpot(TM) 64-Bit Server VM warning
    dubbo-admin管理平台搭建
    zookeeper安装
  • 原文地址:https://www.cnblogs.com/zeppelin/p/7111465.html
Copyright © 2011-2022 走看看