密码学-hash加密
生活随笔
收集整理的這篇文章主要介紹了
密码学-hash加密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下代碼分別為乘法hash,sha256,md5,ripemd160的使用方法:
package mainimport ("fmt""crypto/sha256""os""io""crypto/md5""encoding/hex""golang.org/x/crypto/ripemd160" )func main() {//通過乘法hash對"hello world"進行加密fmt.Println(bernstein("hello world"))Mysha256()MyIOSha256()MyMd5()MyRipemd160() } //乘法hash方法 func bernstein(key string) int {hash := 0var i intfor i = 0; i < len(key); i++ {hash = 33*hash + int(key[i])}return hash }//調用自帶的sha256庫 func Mysha256() {fmt.Println("sha256--------------------------------")sum := sha256.Sum256([]byte("hello world"))fmt.Printf("%x\n", sum)//第二種調用方法h := sha256.New()h.Write([]byte("hello world"))fmt.Printf("%x\n", h.Sum(nil)) }//將文件中的內容進行加密 func MyIOSha256() {//mac下要寫絕對路徑f, _ := os.Open("/Users/liuyang/gocode/src/MyHash/text.txt")defer f.Close()h := sha256.New()io.Copy(h, f)fmt.Printf("%x\n", h.Sum(nil)) }//調用go環境中自帶的md5 func MyMd5() {fmt.Println("MD5--------------------------------")data := []byte("hello world")//第一種方式s := fmt.Sprintf("%x", md5.Sum(data))fmt.Println(s)//第二種方式h := md5.New()h.Write(data)//十六進制轉字符串s = hex.EncodeToString(h.Sum(nil))fmt.Println(s) }//ripemd160,利用hash原理,實現加密 func MyRipemd160() {fmt.Println("Ripemd160--------------------------------")hasher:=ripemd160.New()hasher.Write([]byte("hello world"))hashString:=fmt.Sprintf("%x",hasher.Sum(nil))fmt.Println(hashString) }總結
以上是生活随笔為你收集整理的密码学-hash加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang经典面试题下
- 下一篇: 密码学-DES