【问题标题】:Convert Botan SHA256 output to base64 to match .NET SHA256Managed().ComputeHash()将 Botan SHA256 输出转换为 base64 以匹配 .NET SHA256Managed().ComputeHash()
【发布时间】:2012-11-07 01:58:04
【问题描述】:

我正在将 .NET 应用程序的一部分移植到 Linux 上的 Qt。我正在尝试复制 .NET 函数的结果以创建密码 + salt 的 SHA-256 哈希。 .NET 代码是

return new SHA256Managed().ComputeHash(buffer);

我有创建散列的代码,但它的形式不允许我将其嵌入到 json 对象中。

// create the hash of the salt+password
Botan::SecureVector<Botan::byte> passwordHash = HashData(salt,StringToArray(m_password));
// convert to a QByteArray
QByteArray qPasswordHash;
for(uint i=0; i<passwordHash.size();++i){
    qPasswordHash[i]= passwordHash[i];
}

作为参考,StringToArray 方法如下所示

QByteArray StringToArray(QString szInput){
    QByteArray buffer = szInput.toUtf8().data();
    return buffer;
}

qPasswordHash 是否需要通过 Base64 过滤器(例如 Documentation 中所示的过滤器)才能匹配 .NET 类的输出?如果是这样,您能否指出示例代码或提供使用此 Botan 方法的正确语法示例?

【问题讨论】:

    标签: c++ qt cryptography botan


    【解决方案1】:

    最常见的方式是使用十六进制编码,即每个字节在字符串中表示为 2 位十六进制数字。而且这比 Base64 更容易实现。

    【讨论】:

      猜你喜欢
      • 2012-01-23
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      相关资源
      最近更新 更多