go php password_hash 加解密实现
生活随笔
收集整理的這篇文章主要介紹了
go php password_hash 加解密实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
go php password_hash 加解密實現
注意: 下面的演示需要放到go模塊中才能運行 因為有依賴go的內部包bcrypt
# 模塊化項目更新 go mod tinymain.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 加解密实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tarena - 关联查询
- 下一篇: java-php-python-ssm校