SHA256、SHA1、SHA384 哈希到 JSON Web 令牌

Posted

技术标签:

【中文标题】SHA256、SHA1、SHA384 哈希到 JSON Web 令牌【英文标题】:SHA256, SHA1, SHA384 hash to JSON Web Token 【发布时间】:2020-11-05 08:01:02 【问题描述】:

是否可以从 SHA384 哈希生成 JSON Web 令牌。如果可能,请告知如何可能。 另外请从我的 SHA384 哈希生成 JSON Web Token:

e648d207eb6a457cc3b415e5e6db38759de529051d808b5d34c679c43020a233e6b5161de2e85070127009d61e4c24c8

【问题讨论】:

欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 以了解如何提高问题的质量。然后查看help center,看看你可以问什么问题。请参阅:Why is “Is it possible to…” a poorly worded question?。 “从我的 SHA384 哈希生成 JSON Web 令牌”是什么意思?该任务/方法根本没有任何意义。 【参考方案1】:

不,将哈希转换为 JWT 令牌是不可能的,我也看不出任何人想要这个的原因/原因。

正如评论中提到的,这种方法根本没有任何意义。

哈希不包含任何可以转换为任何内容的可读信息。

如果您的意思是这样,您可以创建一个在有效负载中包含哈希的令牌。

JWT 通常是经过签名的。 SHA 算法,例如HS256 (HMAC-SHA256),可用于签署令牌。 这意味着根据标头和有效负载加上您的秘密计算哈希值,然后对哈希值进行 base64url 编码并作为签名附加到令牌。

您可以阅读此introduction 以了解有关 JWT 的更多信息。

【讨论】:

【参考方案2】:

是的,在 Laravel 版本 7 中是可能的。 将 jwt 哈希令牌转换为 shal 时,转到 EloquentUserProvider.php

public function validateCredentials(UserContract $user, array $credentials)
    
        $plain = $credentials['password'];
        
        if(sha1($plain) == $user->getAuthPassword()) 
            return true;
        else 
            return false;
        
// return $this->hasher->check($plain, $user->getAuthPassword());

【讨论】:

你能分享更多细节吗?如何转换给定的哈希? 将 jwt 哈希令牌转换为 shal 时 - 这是什么意思?代码只是显示了如何对密码进行哈希处理以将其与密码哈希进行比较,这与 JWT 或问题有什么关系?不清楚您想告诉我们什么。

以上是关于SHA256、SHA1、SHA384 哈希到 JSON Web 令牌的主要内容,如果未能解决你的问题,请参考以下文章

Windows10计算文件SHA1 SHA256 SHA384 SHA512 or MD5

1.2常用安全加密

MD5,sha1,sha256分别输出多少位啊?

MD5、sha1、sha256分别输出多少位?

PowerShell校验哈希

hashlib模块