标签: sha256

(比特币)从getwork函数计算哈希 - 怎么做?

当我在bitcoind服务器上调用getwork时,我得到以下内容:

./bitcoind getwork
{
    "midstate" : "695d56ae173bbd0fd5f51d8f7753438b940b7cdd61eb62039036acd1af5e51e3",
    "data" : "000000013d9dcbbc2d120137c5b1cb1da96bd45b249fd1014ae2c2b400001511000000009726fba001940ebb5c04adc4450bdc0c20b50db44951d9ca22fc5e75d51d501f4deec2711a1d932f00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
    "hash1" : "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
    "target" : "00000000000000000000000000000000000000000000002f931d000000000000"
}
Run Code Online (Sandbox Code Playgroud)

该协议似乎没有记录.如何根据此数据计算哈希值.我认为这些数据是小端的.那么第一步是将所有内容转换为大端?完成后,我计算数据的sha256.数据可以分为两个每个64字节的块.第一个卡盘的散列由中间状态给出,因此不必计算.

因此,我必须使用中间状态作为初始哈希值来使用sha256对chunck#2进行散列.一旦完成,我最终得到一个块2的哈希值,它是32字节.我再次计算此块的哈希值以获得最终哈希值.

然后,我将所有内容转换为小端并提交作品吗?

hash1用于什么?

sha256 bitcoin

25
推荐指数
2
解决办法
1万
查看次数

为什么我使用OpenSSL和Java生成的RSA-SHA256签名不同?

我想用Java生成一个RSA-SHA256签名,但我不能让它在控制台上生成与OpenSSL相同的签名.

这就是我对OpenSSL所做的事情(遵循本教程):

生成密钥对:

openssl genrsa -out private.pem 1024
Run Code Online (Sandbox Code Playgroud)

提取公钥:

openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Run Code Online (Sandbox Code Playgroud)

创建数据哈希:

echo 'data to sign' > data.txt
openssl dgst -sha256 < data.txt > hash
Run Code Online (Sandbox Code Playgroud)

生成的哈希文件以(stdin)=我手工删除的内容开头(首先忘了提及它,谢谢马塔).

签名哈希:

openssl rsautl -sign -inkey private.pem -keyform PEM -in hash  > signature
Run Code Online (Sandbox Code Playgroud)

要在Java中重现结果,我首先将私钥从PEM转换为DER:

openssl pkcs8 -topk8 -inform PEM -outform DER -in private.pem -nocrypt > private.der
Run Code Online (Sandbox Code Playgroud)

现在我编写了这个Java类来生成相同的签名:

public class RSATest {

    public static void main(String[] args) throws IOException,
            NoSuchAlgorithmException, InvalidKeySpecException,
            InvalidKeyException, SignatureException {

        byte[] …
Run Code Online (Sandbox Code Playgroud)

java openssl rsa sha256

25
推荐指数
1
解决办法
4万
查看次数

在Python/Django中是否有相当于PHP的hash_hmac?

我想将访问者转发给第三方付费网站.第三方将使用sha256算法使用PHP的hash_hmac处理他们的付款和POST给我一个64个字符的令牌,该令牌来自一个唯一的订单号和共享密码,如下所示:

$token = hash_hmac("sha256", "12345", "sharedpassword");
Run Code Online (Sandbox Code Playgroud)

然后我想在我的端部使用相同的算法来生成(希望)相同的令牌以验证用户已付款.问题是我找不到一个等效的函数或方法来复制Python中的函数.我最接近的是Python的hashlib,但似乎没有一个函数可以接受2个参数 - 数据和共享密码.有没有人知道在这种情况下适用的hash_hmac等价物?

php python django sha256

23
推荐指数
1
解决办法
6118
查看次数

signtool无法对带有时间戳的SHA2和SHA1进行双重签名

我们需要使用signtool.exe使用SHA1和SHA2双重签名我们的二进制文件,我们的证书支持256位SHA2.

使用Windows 8 SDK的signtool:

例如:

signtool.exe签名/ as/fd sha256/t http://timestamp.verisign.com/scripts/timstamp.dll/f"certificate.pfx"/ p XXXXXXX"file.dll"

(XXXXXXX是我们的证书密码)

因为神秘错误而失败:

SignTool错误:SignedCode :: Sign返回错误:0x80070057参数不正确.SignTool错误:尝试签名时发生错误:file.dll

在没有时间戳的情况下进行签名,单独签名为SHA1或SHA256可以正常工作,但是我们需要双重签名,并且想象没有时间戳是不行的.

我已经尝试了32位和64位版本的signtool.exe,在Win7和Win8机器上试过它,并尝试使用命令行选项,但无济于事.以前有人打过这个问题吗?

windows sha256 authenticode verisign signtool

23
推荐指数
4
解决办法
2万
查看次数

用于登录密码的PHP salt和hash SHA256

我已经在我的注册脚本中加密了密码,它们存储在数据库中,我必须使用它们登录,所以我想使用未加密的登录.我在这里读过一些帖子,但没有什么能帮到我.如何在login.php中添加它?盐也存储在数据库中.

这是我的register.php加密脚本

$hash = hash('sha256', $password1);

function createSalt()
{
    $text = md5(uniqid(rand(), TRUE));
    return substr($text, 0, 3);
}

$salt = createSalt();
$password = hash('sha256', $salt . $hash);
Run Code Online (Sandbox Code Playgroud)

这是我的login.php与季节

//Create query
$qry="SELECT * FROM member WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);

//Check whether the query was successful or not
if($result) {
    if(mysql_num_rows($result) > 0) {
        //Login Successful
        session_regenerate_id();
        $member = mysql_fetch_assoc($result);
        $_SESSION['SESS_MEMBER_ID'] = $member['id'];
        $_SESSION['SESS_FIRST_NAME'] = $member['username'];
        $_SESSION['SESS_LAST_NAME'] = $member['password'];
        session_write_close();
        header("location: profile.php");
        exit();
    }
    else {
        //Login failed
        //error message 
    } …
Run Code Online (Sandbox Code Playgroud)

php mysql hash salt sha256

22
推荐指数
1
解决办法
10万
查看次数

哈希(md5,sha1)的任何子串都比另一个更"随机"吗?

这是md5哈希的3个示例

$ md5 -s "1" && md5 -s "2" && md5 -s "3"
MD5 ("1") = c4ca4238a0b923820dcc509a6f75849b
MD5 ("2") = c81e728d9d4c2f636f067f89cc14862c
MD5 ("3") = eccbc87e4b5ce2fe28308fd9f2a7baf3
Run Code Online (Sandbox Code Playgroud)

说我想从任何哈希中取8个字符.哈希的开头部分是否比结尾更"随机"?中间?或者所有子串都是"随机"的?

md5 sha1 hashcode sha256

21
推荐指数
3
解决办法
2364
查看次数

Python中的SHA-256实现

我正在寻找用Python编写的SHA-256哈希函数的实现.我想用它来更好地理解SHA-256函数的工作原理,我认为Python是理想的语言.伪代码有一个限制,我无法运行/测试它,看看我的代码修改对输出做了什么.

python sha256

20
推荐指数
2
解决办法
2万
查看次数

使用Crypto ++生成SHA256哈希,使用字符串作为输入和输出?

我需要一个如何使用Crypto ++从std :: string生成SHA256哈希并输出std :: string的示例.我似乎无法弄明白.我尝试的一切都给了我无效的输出.

这是interjay回答后的新代码:

string SHA256(string data)
{
    byte const* pbData = (byte*) data.data();
    unsigned int nDataLen = data.size();
    byte abDigest[CryptoPP::SHA256::DIGESTSIZE];

    CryptoPP::SHA256().CalculateDigest(abDigest, pbData, nDataLen);

    return string((char*)abDigest);
}
Run Code Online (Sandbox Code Playgroud)

SHA256的输出("A"); 是

在此输入图像描述

如何将其转换为可读格式?

感谢interjay的回答,我能够生成最终的哈希值.

c++ hash stdstring sha256 crypto++

19
推荐指数
3
解决办法
2万
查看次数

SHA256十六进制字符串是什么样的?

我一直在寻找谷歌找到SHA256哈希的十六进制输出的样子.但我似乎无法找到它.

那么当SHA256哈希转换为十六进制时,它会是什么样子?

sha256

19
推荐指数
1
解决办法
2万
查看次数

xcode ios HMAC SHA 256哈希

所以我想弄清楚如何在ios上做一个hmacshad256哈希,因为这是我为我所做的wcf服务api做的哈希.我一直在尝试寻找有关它的一些信息,但通常最终会得到一个SHA-256哈希.

这是我唯一的参考:

需要像Java一样在Objective C中生成HMAC SHA256哈希

而且我不确定这是否是唯一的方法(导入java hmac类)

任何帮助表示赞赏.

谢谢!

cryptography objective-c sha256 hmac ios

18
推荐指数
2
解决办法
2万
查看次数