Base64_encode Unterschied zwischen Java und PHP
Hier ist mein problem :
Habe ich eine JAVA-Funktion zum generieren eines verschlüsselten string. Ich habe zu tun die gleiche Sache in PHP.
Meine Java-Funktion :
String generateSignature () {
byte[] Sequence = ("hello").getBytes("UTF-8");
Mac HMAC = Mac.getInstance("HMACSHA256");
HMAC.init("SECRET_KEY");
byte[] Hash = HMAC.doFinal(Sequence);
String Signature = new String(Base64.encodeBase64(Hash));
return Signature;
}
Meine PHP-Funktion :
function generateSignature() {
$sequence = "hello";
$encrypted = hash_hmac('sha256', $sequence, "SECRET_KEY");
return base64_encode($encrypted);
}
Den Rückgabewert der beiden Funktionen nicht das gleiche. Was mir aufgefallen ist, dass vor der Kodierung zur Basis 64, die beide Funktionen das gleiche Ergebnis. Also, für mich liegt das problem nicht bei der Erzeugung des Schlüssels, sondern auf die Codierung.
Jemand in der Lage zu helfen, bitte ?
Was war der Unterschied?
Hallo.. ich glaube, Sie war arbeiten mit woocommerce-apis. Ich habe auch das gleiche problem. Hast du es im Anschluss an apis mit java.? Bitte helfen Sie mir ich m immer Signatur nicht passen Fehler
Hallo.. ich glaube, Sie war arbeiten mit woocommerce-apis. Ich habe auch das gleiche problem. Hast du es im Anschluss an apis mit java.? Bitte helfen Sie mir ich m immer Signatur nicht passen Fehler
InformationsquelleAutor julienpar | 2012-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist in der Dokumentation für die PHP-Funktion hash_hmac.
Pass "true" als das Letzte argument. Hashes sind binäre. Wenn drehen, Sie in die Saiten, Sie sind oft im Hexadezimalformat codierte. Aber in diesem Fall sind Sie gehen zu base-64-codieren, so dass Sie wollen, dass die rohen binären form.
InformationsquelleAutor John Watts