什么是SHA-256以及如何在不同的编程语言中计算SHA-256?

哈希算法是密码学和安全性的核心。SHA-256是一种安全哈希算法,它将生成256位的输出哈希值。SHA-256是由国家安全局设计的  (国家安全局)。SHA-256是加密散列函数之一。SHA-256还命名了一个单向函数,其中生成的哈希值在理论上无法反转。这使得SHA-256对于密码验证、挑战哈希验证、防篡改、数字签名、X.509、SSL/TLS证书等非常有用。

null

SHA-256加密功能

由于SHA-256是一个加密函数,它为加密和安全操作提供了一些功能。

  • SHA-256生成或计算的数据将 One-Way . 这意味着不能使用函数将其反转回原始数据。有一个例外,暴力或彩虹表可以使用。
  • SHA-256是由NSA创建的SHA-2加密散列函数家族的成员。
  • SHA-256是一种防篡改功能,这意味着在不同时间计算相同数据的哈希值将提供相同的哈希值。如果数据中有一个位的变化,散列值将非常不同。所以我们可以决定篡改这个特性。
  • SHA-256可用于 challenge handshake authentication 因为密码不是明文传输的。
  • SHA-256可用于 digital signatures 以检验给定数据的有效性和完整性与真实性。

为Python中的给定文本生成SHA-256

在Python编程语言中,SHA-256由 hashlib 模块。我们将使用 sha256() 功能。为了提供一个字符串来计算散列,我们应该用 encode() 功能如下。我们将使用 hexdigest() 功能。

import hashlibhashvalue=hashlib.sha256("mysecretpassword".encode())print(hashvalue.hexdigest())
Generate SHA-256 For Given Text In Python
为Python中的给定文本生成SHA-256

我们可以看到,我们已经计算了两个数据散列值。这些数据与第一个非常相似 mysecretpassword 第二个是 mysecretpasswrt 只有最后一个字母不同。这将完全更改计算的哈希值。

相关文章: 如何在Linux中检查文件的完整性?

为Go中的给定文本生成SHA-256

Go是支持SHA-256的新一代编程语言。我们可以使用 sha256 模块 Sum256() 通过提供数据发挥作用。

s := "mysecretpassword"sha256 := sha256.Sum256([]byte(s))fmt.Printf("%x", sha256)

在PHP中为给定文本生成SHA-256

PHP是一种web和服务器端脚本和编程语言。我们可以用 hash() 函数提供的数据,我们可以计算它的散列。  我们还将提供我们想要使用的哈希算法 sha256 在这种情况下。

$hashvalue=hash('sha256','mysecretpassword');echo $hashvalue;
Generate SHA-256 For Given Text In PHP
在PHP中为给定文本生成SHA-256

为JavaScript中的给定文本生成SHA-256

JavaScript编程语言不提供内置的SHA-256算法支持。因此,我们必须找到一些外部或第三方库来计算JavaScript脚本中的SHA-256。以下JavaScript库可用于计算SHA-256。

https://geraintluff.github.io/sha256/

var hashvalue=sha256('mysecretpassword')

在PowerShell中为给定文本生成SHA-256

PowerShell提供HashAlgorithms库来实现SHA256。我们将使用 Create() 函数,并提供哈希算法名称 SHA256 .

$StringBuilder = New-Object System.Text.StringBuilder[System.Security.Cryptography.HashAlgorithm]::Create("SHA256").ComputeHash([System.Text.Encoding]::UTF8.GetBytes("mysecretpassword"))|%{[Void]$StringBuilder.Append($_.ToString("x2"))}$StringBuilder.ToString()

用Java为给定文本生成SHA-256

Java编程语言长期提供SHA-256。我们将使用 MessageDigest 以创建SHA-256哈希对象。那我们就用 digest() 函数以计算给定文本的哈希值。计算出的哈希值将存储到名为 encodedhash .

MessageDigest digest = MessageDigest.getInstance("SHA-256");byte[] encodedhash = digest.digest("mysecretpassword".getBytes(StandardCharsets.UTF_8));
© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享