【问题标题】:golang bcrypt returns in Bytesgolang bcrypt 以字节为单位返回
【发布时间】:2016-11-07 23:07:16
【问题描述】:

我正在使用 Golang Bcrypt 算法,例如它以字节为单位返回

password := []byte("MyPassword")

hashedPassword, err := bcrypt.GenerateFromPassword(password, 12)

上面的代码返回一个 hashPassword

[36 50 97 36 49 50 36 103 118 90 90 104 82 114 99 88 113 81 46 48 69 52 105 51 82 71 53 104 101 83 79 107 80 3 99 53 1003 9 99 53 103 48 106 56 68 66 54 84 89 83 107 100 108 87 67 115 57 77 97] 我的问题是;这是否与我在 Java 和 C# 中使用的字符串实现一样保存,其中 Hashpassword 将以字符串、数字和其他字符的形式返回?我已经从https://godoc.org/golang.org/x/crypto/bcrypt#CompareHashAndPassword 获得了代码并对其进行了测试。

【问题讨论】:

    标签: go bcrypt


    【解决方案1】:

    是的,bcrypt 的函数确实对字节切片进行操作,但是,返回的哈希是 base64 编码的。因此,可以通过进行字符串转换来获得哈希密码的字符串表示形式:

    hashedPasswordStr := string(hashedPassword)
    

    This question 提供了一些为什么首选数组而不是字符串来存储密码的一些原因(不同的语言,但相同的原则)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2019-06-14
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多