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]
  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/zeppelin/p/7111465.html
Copyright © 2011-2022 走看看