标签: sha256

SHA256CryptoServiceProvider和相关的可能在WinXP上使用?

是否可以在Windows XP上使用SHA256CryptoServiceProvider和相关的SHA2提供程序?我知道提供商使用Vista中包含的加密服务以上是否可以在Microsoft的XP中安装这些服务?

编辑:我应该提供更多信息,MSDN上的文档在Windows XP中受支持是错误的.请参阅http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355031,其中Microsoft已确认并接受此设计.然而,在任何地方都没有列出任何工作(我看到)所以我不确定是否可以安装这需要正常工作的服务,或者是否像在试图在WinXP上安装IIS 6或7的windwills倾斜.

c# security encryption sha256

7
推荐指数
1
解决办法
3737
查看次数

是否存在可以保证哈希算法唯一的情况?

如果我使用比数据(例如sha-256)更大的字节大小的散列算法散列大小受限的类似数据(例如社会安全号),那么散列将保证与单词相同的唯一性级别.原始数据?

hash hash-code-uniqueness unique sha256

7
推荐指数
3
解决办法
4776
查看次数

为什么PHP的hash_hmac('sha256')给出的结果与java sha256_HMAC不同

在PHP中我有以下功能:

base64_encode(hash_hmac('sha256', $data, $secret, false));
Run Code Online (Sandbox Code Playgroud)

我正在尝试在Java中创建一个函数,它将为相同的"数据"和"秘密"参数提供相同的结果.

我试着使用这个功能:

public static String base64sha256(String data, String secret) {
    Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
    SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
    sha256_HMAC.init(secret_key);
    byte[] res = sha256_HMAC.doFinal(data.getBytes());
    return Base64.encodeToString(res, Base64.NO_WRAP);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了相同输入的不同结果


更新:此功能有效.请享用.

public static String base64sha256(String data, String secret) {
    String hash = null;
    try {
        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
        SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256");
        sha256_HMAC.init(secret_key);
        byte[] res = sha256_HMAC.doFinal(data.getBytes("UTF-8"));
        hash = getHex(res);
        hash = Base64.encodeToString(hash.getBytes("UTF-8"), Base64.NO_WRAP);
    } catch (Exception e){}
    return hash;
}

static …
Run Code Online (Sandbox Code Playgroud)

php java sha256

7
推荐指数
1
解决办法
6874
查看次数

使用crypto node.js库,无法快速连续多次创建SHA-256哈希

我正在创建一个自动递增数字的哈希值.我已经创建了两个示例循环,我正在尝试实现此目的.

运行#1时,第一个哈希记录到控制台,第二次迭代通过循环,返回以下错误.错误:已经调用摘要

我相信这是由于文档中的这个引用:在调用hash.digest()方法之后,不能再使用Hash对象.多次调用将导致抛出错误.

如何创建一个使用Node的加密库一次创建多个哈希的循环?

 // Reproduce #1
 const crypto = require('crypto');
 const hash = crypto.createHash('sha256');
 for (let i = 0; i < 5; i++) {
   hash.update('secret' + i);
   console.log(hash.digest('hex'));
 }
Run Code Online (Sandbox Code Playgroud)

javascript cryptography sha256 digest node.js

7
推荐指数
1
解决办法
4381
查看次数

如何从 Post 请求 url 和浏览器转储中隐藏密码

这可能是一个老问题,但我仍然没有找到这个问题的正确答案,所以请耐心等待。我有一个 https 登录页面,它使用表单发布方法并将凭据发送到服务器......等等。

登录时,如果使用IE和F12进行网络监控,点击开始抓包。您可以看到一些类似于 login、servetloginauth(来自 gmail.com)的 URL,并且您可以看到包含您的用户名和密码的请求正文。好吧,可以争辩说,只有当用户没有注销时,您才能看到这一点。

现在注销并且不要关闭浏览器并从任务管理器中获取浏览器转储(任何浏览器,任何版本)(我不知道如何在 Mac 中做同样的事情)。使用 WinHex 编辑器打开转储文件并执行 Search/Find: "password=" 或实际密码(因为您测试了您自己的登录信息,您已经知道您的密码)。您可以以明文形式查看密码。

现在我的问题是,如何屏蔽密码: 1. 在 Post 请求 URL 中 2. 或者当浏览器将我的凭据保存到转储时,我需要对其进行屏蔽/加密或根本不应该保存密码.

我的jsp代码:

<s:form id="login" name="loginForm1" action="login" namespace="/" method="post" enctype="multipart/form-data" >  
      <fieldset><!-- login fieldset -->
        <div><!-- div inside login fieldset -->
                <div....
                  <label for="password" class="loginLabel">Password</label>
                  <input type="password" name="password" id="password" class="longField nofull absPosition" size="16" autocomplete="off" alt="Password" placeholder="Password" title="Password|<
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案如下,但我不需要太多努力就需要任何替代方案。

如果密码以明文形式发送,则可以从内存中读取密码。使用加盐散列技术进行密码传输将解决此问题。散列是一种密码技术,其中的实际值永远无法恢复。在加盐散列技术中,密码以散列形式存储在数据库中。服务器生成一个随机字符串盐,并将它与登录页面一起发送到客户端。页面上的 JavaScript 代码计算输入密码的哈希值,连接盐并计算整个字符串的哈希值。该值在 POST 请求中发送到服务器。

然后服务器从数据库中检索用户的散列密码,连接相同的盐并计算散列。如果用户输入了正确的密码,这两个哈希值应该匹配。

现在,POST 请求将包含密码的加盐哈希值,而明文密码将不会出现在内存中

SHA 256 是当今可用的强大散列算法 - JavaScript 中的现成实现可用并在“良好阅读”部分引用。

注意:对于包含敏感信息的页面或在数据库中可以修改数据的页面,使用 JavaScript 来刷新浏览器的内存

和图像如下。 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

另外,我可以解决花旗银行在其网站上为客户所做的事情。我登录了网站并在转储中看到我的用户名被屏蔽了(如网站中所示),我也需要对密码字段执行相同操作的内容。有人可以解释我该怎么做吗? 在此处输入图片说明

java ssl https jsp sha256

6
推荐指数
1
解决办法
7852
查看次数

Python 的 pbkdf2_sha256.verify 的 NodeJS 实现

我必须将这个 Python 代码翻译为 NodeJS:

from passlib.hash import pbkdf2_sha256
pbkdf2_sha256.verify('12345678', '$pbkdf2-sha256$2000$8R7jHOOcs7YWImRM6V1LqQ$CIdNv8YlLlCZfeFJihZs7eQxBsauvVfV05v07Ca2Yzg')
>> True
Run Code Online (Sandbox Code Playgroud)

上面的代码是完整的代码,即没有其他参数/​​设置(只需pip install passlib在运行它来安装passlib包之前运行)。

我正在寻找validatePasswordNode 中函数的正确实现,它将通过这个积极的实现测试:

validatePassword('12345678', '$pbkdf2-sha256$2000$8R7jHOOcs7YWImRM6V1LqQ$CIdNv8YlLlCZfeFJihZs7eQxBsauvVfV05v07Ca2Yzg')
>> true
Run Code Online (Sandbox Code Playgroud)

这是passlib.hash.pbkdf2_sha256 及其默认参数值的文档。

我尝试使用上面的 Python 代码中的数据来遵循此处的答案,但该解决方案没有通过测试。

我希望获得有关此实现的一些帮助(最好使用内置 NodeJScrypto包)。

先感谢您。

python cryptography sha256 pbkdf2 node.js

6
推荐指数
1
解决办法
1870
查看次数

用于 Apple AppStoreConenct API Auth 的 ES256 JWT 登录 PHP

我正在尝试使用 PHP通过 ES256 签名的 JWT(根据他们在https://developer.apple.com/documentation/appstoreconnectapi 上的说明)对 Apple 的 AppStoreConnect API 进行身份验证。

发送我的请求总是会导致401 NOT_AUTHORIZED错误。

我已经验证了我的标题和声明的内容是正确的 - 我什至在网上找到了一个 Ruby 脚本来生成一个 ES256 签名的 JWT 并使用我的 Apple 提供的颁发者、密钥 ID、私钥,它运行良好 - Apple 接受令牌. 这告诉我我的凭据很好,但我在 php 中做错了。

除非我只是盯着这段代码看太久,否则 JWT 格式是正确的,base64 编码正确,并且不记名令牌在标头中设置正确。

为了排除请求发送的问题,我尝试了 GuzzleHTTP 和 CLI cURL - 都是 401。


这是相关的代码。您将看到该create方法正在对标头和声明进行编码、签署“有效负载”并连接所有 3 个。

public function create()
{
    $header = $this->encode(
        json_encode([
            'kid' => 'my_key_id',
            'alg' => 'ES256',
            'typ' => 'JWT',
        ])
    );

    $claims = $this->encode(
        json_encode([
            'iss' => 'my_issuer_uuid',
            'exp' => …
Run Code Online (Sandbox Code Playgroud)

php sha256 jwt ecdsa app-store-connect

6
推荐指数
1
解决办法
5248
查看次数

docker 镜像的 sha256 哈希在存储库之间是否不同?

我刚刚将 Docker 镜像从一个存储库复制到另一个存储库,方法是从 OpenShift 3.11 外部存储库中提取显式 sha256 哈希标签,将其重新标记到我们的 Harbor 1.9.2 存储库并推送该标签。

在此过程中,显示​​了新图像的 sha256 密钥,它与我开始使用的 sha256 密钥不同。这是出乎意料的,因为我没有对图像进行任何更改,除了为其分配另一个标签之外,因此字节应该相同,给出相同的哈希值。

这是否意味着算法由于某种原因而不同?存储库名称是否包含在哈希键计算中?或者是其他东西?

sha256 docker docker-registry

6
推荐指数
1
解决办法
3188
查看次数

Nodejs 和 kotlin 中的 SHA256 不同哈希

我在两个不同的模块中使用 SHA 256 哈希生成器。一个模块是用 Kotlin 编写的,另一个模块使用 Nodejs 加密 API 编写。Nodejs 和 kotlin 中的哈希值略有不同。

Kotlin 代码

import java.security.MessageDigest
import java.util.Base64
fun main() {
        val md = MessageDigest.getInstance("SHA-256")
        val input = "test".toByteArray(Charsets.UTF_8)
        val bytes = md.digest(input)
        println(Base64.getUrlEncoder().encodeToString(bytes))
}
Run Code Online (Sandbox Code Playgroud)

Nodejs代码

const crypto = require('crypto');
const hash = crypto.createHash('sha256');

hash.update('test');
console.log(crypto.createHash('sha256').update('test', 'utf8').digest('base64'));
Run Code Online (Sandbox Code Playgroud)

kotlin 代码输出n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg=where ,而 Nodejs 代码输出n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=。我无法确定我做错了什么?

java sha256 node.js kotlin

6
推荐指数
1
解决办法
5983
查看次数

在python中将sha256摘要转换为UUID

str给定python 中a 的 sha256 哈希值:

import hashlib

hash = hashlib.sha256('foobar'.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

如何将hash转换为 a UUID

2^256注意:鉴于 hexdigest 具有可能的值并且 UUID 具有 ,显然存在 hexdigest 到 UUID 的多对一映射2^128

预先感谢您的考虑和回复。

python hash uuid sha256

6
推荐指数
1
解决办法
4809
查看次数