1. ホーム
  2. c++

[解決済み] c++でSHA256を生成する

2022-01-30 18:12:24

質問

あるデータのSHA256を生成する必要があります。私は見つけた この例 は非常に良いものです。今、私の質問は、私自身のキーを使用してsha256を生成することができます。

EDITです。

まず、間違った質問で申し訳ありません。SHA256を生成するために使用するキーを変更するということではありません。私が本当に必要なのは、次のJavaコードをc++に変換することです。

public static String calculateHMAC(String data, String key) throws Exception {
String result;
try {
    // get an hmac_sha2 key from the raw key bytes
    SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA2_ALGORITHM);

    // get an hmac_sha1 Mac instance and initialize with the signing key
    Mac sha256_HMAC = Mac.getInstance(HMAC_SHA2_ALGORITHM);
    sha256_HMAC.init(signingKey);

    // compute the hmac on input data bytes
    byte[] rawHmac = sha256_HMAC.doFinal(data.getBytes());

    // base64-encode the hmac 
    StringBuilder sb = new StringBuilder();
    char[] charArray = Base64.encode(rawHmac);
        for ( char a : charArray){
            sb.append(a);
            }
        result = sb.toString();
    }
    catch (Exception e) {
        throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
    }
    return result;
}

解決方法は?

無料の クリプトプラス ライブラリです。以下は、そのサンプルです。 HMAC .