Javascript 为什么这两个字符串对于bcrypt是相同的?

Javascript 为什么这两个字符串对于bcrypt是相同的?,javascript,bcrypt,Javascript,Bcrypt,refreshToken是一个字符串,检查它是否与编码一致 currentHashedRefreshToken当前是一个编码令牌 isRefreshTokenMatching是一个布尔变量,用于比较编码字符串是否与bcrypt匹配 { refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiOWRiMTcwMmMtNDkyYy00MTJmLTkyM2QtM2Y5MWQyYzk0NTNjIiwicm9sZSI6IkNVU1

refreshToken
是一个字符串,检查它是否与编码一致


currentHashedRefreshToken
当前是一个编码令牌

isRefreshTokenMatching
是一个布尔变量,用于比较编码字符串是否与bcrypt匹配

{
  refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiOWRiMTcwMmMtNDkyYy00MTJmLTkyM2QtM2Y5MWQyYzk0NTNjIiwicm9sZSI6IkNVU1RPTUVSX1JPTEUiLCJpYXQiOjE2MDU0NzM4NTcsImV4cCI6MTYwNTQ3NzQ1N30.o9nEeH4V7PZ61jWRG7-7epH79Vi9HJQWorvx5A37q4o'
}
{
  currentHashedRefreshToken: '$2b$10$ZYsrh1xu3icprkvRI0OksuBx6hrfOs9lmO7oZ2qqM6pFCLDiVaQrq'
}
{ isRefreshTokenMatching: true }
第二声:

{
  refreshToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiOWRiMTcwMmMtNDkyYy00MTJmLTkyM2QtM2Y5MWQyYzk0NTNjIiwicm9sZSI6IkNVU1RPTUVSX1JPTEUiLCJpYXQiOjE2MDU0NzUzOTgsImV4cCI6MTYwNTQ3ODk5OH0.iHRhFmtgRbsgTv9uC7VDaT_bU1tHxdlCjHDCjfmxeKA'
}
{
  currentHashedRefreshToken: '$2b$10$ZYsrh1xu3icprkvRI0OksuBx6hrfOs9lmO7oZ2qqM6pFCLDiVaQrq'
}
{ isRefreshTokenMatching: true }
如果两个刷新令牌不同,为什么它们都会检测到匹配

以下是我的哈希和解码方法:

  /**
   * generate hash from password or string
   * @param {string} password
   * @returns {Promise<string>}
   */
  static async generateHash(password: string): Promise<string> {
    return bcrypt.hash(password, 10);
  }

  /**
   * validate text with hash
   * @param {string} password
   * @param {string} hash
   * @returns {Promise<boolean>}
   */
  static async validateHash(password: string, hash?: string): Promise<boolean> {
    return bcrypt.compare(password, hash || '');
  }
/**
*从密码或字符串生成哈希
*@param{string}密码
*@returns{Promise}
*/
静态异步generateHash(密码:string):承诺{
返回bcrypt.hash(密码,10);
}
/**
*使用哈希验证文本
*@param{string}密码
*@param{string}哈希
*@returns{Promise}
*/
静态异步validateHash(密码:string,哈希?:string):承诺{
返回bcrypt.compare(密码,散列| |“”);
}

您发布的代码没有对您列出的与之相关的数据进行任何处理。你能在这里发布一个更完整的例子说明你想做什么吗?
currentHashedRefreshToken
是创建
refreshToken
时使用的哈希密码-当然它们是相同的,而代币将有所不同,因为它们的发行时间和到期日不同time@JaromandaX所以我有两个不同的refreshToken和一个currentHashedRefreshToken-这没关系,另外两个字符串对bcrypt具有相同的值?您显示的代码都与
refreshToken
无关。。。除了
currentHashedRefreshToken
实际上是(我猜,因为我无法解密它)用于创建
refreshToken
的哈希密码之外,
refreshToken
的值与基于您显示的代码的
isRefreshTokenMatching
没有任何关系,如果需要更多信息,您必须展示如何计算
isRefreshTokenMatching
。此外,这看起来像是TypeScript,而不是JavaScript,尽管我认为这与问题无关。