日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

go php password_hash 加解密实现

發布時間:2023/12/8 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go php password_hash 加解密实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

go php password_hash 加解密實現

注意: 下面的演示需要放到go模塊中才能運行 因為有依賴go的內部包bcrypt

# 模塊化項目更新 go mod tiny

main.go

import ("fmt""encoding/base64""utils" )func main() {// go php password_hash加解密實現示例// password_hash 加密cipher, err := utils.PasswordHash("admin")if err != nil {panic(err)}fmt.Println("加密后的密文:" + cipher) //這個密文同一個密碼每次都不一樣//驗證密碼isOk := utils.PasswordVerify("admin", cipher)fmt.Println(fmt.Sprintf("驗證結果: %v", isOk))//為了方便觀看這里base64加密一下 取出對比是需要解密// base64加密bs64Cipher := base64.StdEncoding.EncodeToString([]byte(cipher))fmt.Println("Base64編碼后的字符: " + bs64Cipher)// base64解密cipherDcodeBs, _ := base64.StdEncoding.DecodeString(bs64Cipher)fmt.Println(fmt.Sprintf("驗證結果: %v", utils.PasswordVerify("admin", string(cipherDcodeBs))))/** //輸出結果:加密后的密文:$2a$10$BJWO/I6WJ04m/zQMTIr5P.gvcd9.LoWjYFgz/tnfaliuDdeEennUG驗證結果: trueBase64編碼后的字符: JDJhJDEwJEJKV08vSTZXSjA0bS96UU1USXI1UC5ndmNkOS5Mb1dqWUZnei90bmZhbGl1RGRlRWVublVH驗證結果: true*/}

utils.go

package utilsimport ("golang.org/x/crypto/bcrypt" )// PasswordHash php的函數password_hash func PasswordHash(password string) (string, error) {bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)return string(bytes), err }// PasswordVerify php的函數password_verify func PasswordVerify(password, hash string) bool {err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))return err == nil }

總結

以上是生活随笔為你收集整理的go php password_hash 加解密实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。