Что делает BigNum :: to_dec_str? - PullRequest
       3

Что делает BigNum :: to_dec_str?

0 голосов
/ 07 декабря 2018

Мне нужно воссоздать функцию Rust в C #.Пока это мой 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 - это строка, но числа в строке не должны совпадать по одному.

hash:

[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?Это похоже на какую-то десятичную упаковку;это правильно?

1 Ответ

0 голосов
/ 07 декабря 2018

Из документации для ящика openssl :

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

Возвращает десятичное строковое представление self.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...