[PYTHON] HMAC in verschiedenen Sprachen

HMAC SHA-256 Probe. Ich werde mehr schreiben, wenn ich Zeit habe.

Geheimschlüssel Geheimschlüssel ・ Mit HMAC SHA-256 mit Ziel signieren Dies ist ein Stift.. Die Ausgabe lautet "b4197908ed255480db6bbedb27426c89520bcd3b79c81006f70a94f415b43a43".

Erstes Java.

package example.misc;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public class HmacDemo {

    private static final String SECRET = "secret key";
    private static final String TEXT = "This is a pen.";

    public static void main(String[] args) throws Exception {
        String algo = "HMacSHA256";
        final SecretKeySpec keySpec = new SecretKeySpec(SECRET.getBytes(),
                algo);
        final Mac mac = Mac.getInstance(algo);
        mac.init(keySpec);
        final byte[] signBytes = mac.doFinal(TEXT.getBytes());
        for (byte signByte : signBytes) {
            System.out.printf("%02x", signByte & 0xff);
        }
        System.out.print("\n");

    }
}

Die Spezifikation des Algorithmus ist redundant, aber gibt es nur eine solche Schreibweise? Ich würde mich freuen, wenn die hexadezimale Ausgabe der Byte-Zeichenfolge etwas sauberer gestaltet werden könnte. Die Base64-codierte Bibliothek akzeptiert Byte-Zeichenfolgen unverändert. In diesem Fall kann dies sinnvoll sein.

Als nächstes kommt Python

#!/usr/bin/python3

import hashlib
import hmac

SECRET = "secret key"
TEXT = "This is a pen."

print(hmac.new(bytes(SECRET, 'ascii'), bytes(TEXT, 'ascii'), hashlib.sha256).hexdigest())

Nächster Rubin.

#!/usr/bin/ruby

require 'openssl'

SECRET = "secret key"
TEXT = "This is a pen."

puts OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'),
  SECRET, TEXT).unpack("H*")

Recommended Posts

HMAC in verschiedenen Sprachen
[AOJ] Absteigende Sortierung in verschiedenen Sprachen
Schreiben Sie Klassen (oder klassenähnliche) in verschiedenen Programmiersprachen
Numerische Darstellung von Tagen in verschiedenen Sprachen
Darstellung von Fibonacci-Sequenzen mit Lambda-Ausdrücken in verschiedenen Sprachen
10 beliebtesten Programmiersprachen im Jahr 2020
Messen Sie sich mit Datei-E / A in verschiedenen Sprachen und vergleichen Sie die Geschwindigkeiten
Hallo Welt in verschiedenen Sprachen [Python / PHP / Java / Perl / Ruby]
Ich habe N-Queen in verschiedenen Sprachen implementiert und die Geschwindigkeit gemessen
Lass uns "Hello World" in 40 Sprachen machen! !!
Verschiedene Anaconda-Einstellungen in der Windows 10-Umgebung
Zusammenfassung verschiedener Operationen in Tensorflow
Ich habe ein Ausgabeprogramm für Primzahlentabellen in verschiedenen Sprachen erstellt
Parallelität mit Sammlungen in populären Sprachen
Zusammenfassung verschiedener for-Anweisungen in Python
Grundlegendes Schreiben verschiedener Programmiersprachen (Self-Memo)
Ich habe einen Unit-Test für verschiedene Sprachen geschrieben
RICOH THETA S API in mehreren Sprachen.
Verschiedene Kommentare im Programm zu schreiben