Generieren SHA256 in c++
Muss ich generieren SHA256 einige Daten. Ich fand dieses Beispiel ist eine sehr gute. Nun meine Frage ist Kann ich generieren eine sha256-durch die Verwendung meiner eigenen Schlüssel.
EDIT:
Erstens, sorry für die falsche Frage. Ich meine nicht, dass zu ändern, der Schlüssel, der verwendet wird zum generieren von SHA256. Ich wirklich brauchen, ist, dass, konvertieren Sie den folgenden java-code in 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;
}
sha ist eine hash-Funktion nicht verschlüsseln Schema
Danke. Tag entfernt.
Dann was meinst du mit "eigenen Schlüssel"?
Sie mischen Salz mit einer Verschlüsselung?
Warum sollte man es ändern? der springende Punkt bei der SHA256 ist, dass jeder ihn auf einem Stück von Daten und vergleichen Sie das Ergebnis auf einen bekannten guten Wert, der zum bestätigen der Integrität der Daten.
Danke. Tag entfernt.
Dann was meinst du mit "eigenen Schlüssel"?
Sie mischen Salz mit einer Verschlüsselung?
Warum sollte man es ändern? der springende Punkt bei der SHA256 ist, dass jeder ihn auf einem Stück von Daten und vergleichen Sie das Ergebnis auf einen bekannten guten Wert, der zum bestätigen der Integrität der Daten.
InformationsquelleAutor Nelson T Joseph | 2015-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen, die Kostenlose Crypto++ Bibliothek. Hier ist ein Beispiel für HMAC.
InformationsquelleAutor l33t
SHA-256 ist ein Mitglied der SHA-2 kryptografische hash-Funktionen-Familie, die in der Regel erzeugt 256 bit oder 32 bytes HASH-Code aus einer Eingabe-Nachricht.
Es ist nicht eine Verschlüsselung - Mechanismus, was bedeutet, dass von der HASH-Code, auch bekannt als message digest oder einfach die digest, können Sie nicht regenerieren Sie die Nachricht.
Daher gibt es müssen keine Taste zu verwenden
SHA-256
zu generieren message digest.Darüber hinaus hash-Funktionen als praktisch unmöglich zu invertieren, das heißt, erstellen Sie die input-Daten aus der hash-Wert (message digest) allein. So können Sie nicht "entschlüsseln" eine HASH-message/message-digest mit dem Eingang Nachricht, bedeutet die Umkehrung ist nicht möglich, für das Hashing. Zum Beispiel,
dann gibt es KEINE Mechanismus wie
inverseSHA256
denen tun können, die folgenden,InformationsquelleAutor rakeb.mazharul