2012年11月15日 星期四

Go 语言对称加密算法des

Go语言里有很多加密解密的算法,详细请看包ctypto下面.在其中有一个对称加密算法des,关于详细了解des算法的原理,请去百度.下面是我对一个包写的一个例子.key只能是8字节,可以三重加密.据我所知,好像只能对8字节长度的进行加密解密.加密后的也不能转换成utf-8字符串.
package main

import (
	"crypto/des"
	"fmt"
	//"encoding/base64"
)

func main() {
	key := []byte("12345678")
	in:=[]byte("87654321")
	fmt.Println("in",in)
	c, _ := des.NewCipher(key)
	out1:=make([]byte,len(in))
	c.Encrypt(out1, in)
	fmt.Println("加密后",out1)
	out2:=make([]byte,len(out1))
	c.Decrypt(out2, out1)
	fmt.Println("加密后:",out2)
}
运行结果:
in [56 55 54 53 52 51 50 49]
加密后 [56 84 48 40 155 117 148 36]
加密后: [56 55 54 53 52 51 50 49]
[Finished in 0.5s]