gpt4 book ai didi

rust - BigNum::to_dec_str 是做什么的?

转载 作者:行者123 更新时间:2023-11-29 08:34:28 24 4
gpt4 key购买 nike

我需要在 C# 中重新创建一个 Rust 函数。到目前为止,这是我的 C#:

public static string AsSha256Decimal(this string asci)
{
if (asci.IsDigitsOnly())
return asci;

byte[] hashBytes = asci.AsHashSha256();
StringBuilder builder = new StringBuilder();

foreach (byte a in hashBytes)
{
builder.Append(a);
}

return builder.ToString();
}

这是我的 Rust 代码:

extern crate openssl;

use self::openssl::bn::BigNum;
use self::openssl::sha::sha256;
use utils::error::BIG_NUMBER_ERROR;

fn encode_a_word() {
let blah = "blah";
let hash = sha256(blah.as_bytes());
let bignum = BigNum::from_slice(&hash).unwrap();
let final1 = bignum.to_dec_str().unwrap();
trace!("hash {:?} and final {:#?}", hash, final1)
}

我可以获得正确的 SHA256 哈希值,但无法获得正确的最终值。 hash 看起来像一个数字数组,final1 是一个字符串,但字符串中的数字不能一一匹配。

哈希:

[139, 125, 241, 67, 217, 28, 113, 110, 207, 165, 252, 23, 48, 2, 47, 107, 66, 27, 5, 206, 222, 232, 253, 82, 177, 252, 101, 169, 96, 48, 173, 82]

final1:

63094006986221797353605481996956262747240529547095446989928883355012717129042

我不明白 bignum 函数在做什么;使用 bignum.to_dec_str 的行在做什么?它看起来像某种十进制包装;对吗?

最佳答案

来自documentation for the openssl crate :

fn to_dec_str(&self) -> Result<OpensslString, ErrorStack>

Returns a decimal string representation of self.

关于rust - BigNum::to_dec_str 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53675259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com