Es ist ein Memo, weil ich zu wenig Möglichkeiten habe, es zu verwenden, und ich kann mich nicht erinnern, wann ich darüber nachgedacht habe, es zu verwenden.
SHA256 in R.
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("hello!"))
# -> [1] "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("Heiligenschein!"))
# -> [1] "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
Bei der Ausführung über die Befehlszeile
Bei der Ausführung über die Befehlszeile
Rscript -e '
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("hello!"))
'
Ich mache mir Sorgen, ob es wirklich passt ... Ich dachte, dass diese Angst nicht beseitigt werden kann, ohne zu überprüfen, ob die Ergebnisse in verschiedenen Umgebungen gleich sind. Als ich sie nachschlug, war es in vielen Fällen einfach genug, in einen Liner zu schreiben, sodass es sich um ein Memo handelt.
Ich fragte mich, ob ich zwei oder drei der folgenden Schritte ausführen sollte, einschließlich Japanisch, und prüfen sollte, ob die Ergebnisse gleich sind.
SHA256-Test (Linux-Befehl)
#echo+benutze sha256sum
echo -n "hello!" | sha256sum
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b -
echo -n "Heiligenschein!" | sha256sum
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42 -
#echo+benutze openssl
echo -n "hello!" | openssl sha256
# -> (stdin)= ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
echo -n "Heiligenschein!" | openssl sha256
# -> (stdin)= 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
Der Befehl "echo" vergisst möglicherweise die Option "-n", daher ist der Befehl "printf" möglicherweise besser.
SHA256-Test mit printf (Linux-Befehl)
printf "hello!" | sha256sum
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b -
printf "Heiligenschein!" | sha256sum
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42 -
Node.js13.5
SHA256-Test (Knoten.js)
console.log(require("crypto").createHash("sha256").update("hello!").digest("hex"))
// -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
console.log(require("crypto").createHash("sha256").update("Heiligenschein!").digest("hex"))
// -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
Bei der Ausführung über die Befehlszeile
Bei der Ausführung über die Befehlszeile
node -e '
console.log(require("crypto").createHash("sha256").update("hello!").digest("hex"))
'
Python3.5
SHA256-Test (Python)
#3.5
print(__import__("hashlib").sha256("hello!".encode("utf-8")).hexdigest())
print(__import__("hashlib").sha256("Heiligenschein!".encode("utf-8")).hexdigest())
Bei der Ausführung über die Befehlszeile
Bei der Ausführung über die Befehlszeile
python3 -c '
print(__import__("hashlib").sha256("hello!".encode("utf-8")).hexdigest())
'
Ruby2.3
SHA256-Test (Ruby)
require "digest/sha2"
print Digest::SHA256.hexdigest("hello!")
# -> "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
require "digest/sha2"
print Digest::SHA256.hexdigest("Heiligenschein!")
# -> "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
#Oder
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("hello!")
# -> "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("Heiligenschein!")
# -> "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
Bei der Ausführung über die Befehlszeile
Bei der Ausführung über die Befehlszeile
ruby -e '
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("hello!")
'
Perl5
SHA256-Test (Perl)
use Digest::SHA qw(sha256_hex);
print sha256_hex("hello!");
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
use Digest::SHA qw(sha256_hex);
print sha256_hex("Heiligenschein!");
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
Bei der Ausführung über die Befehlszeile
Bei der Ausführung über die Befehlszeile
perl -e '
use Digest::SHA qw(sha256_hex);
print sha256_hex("hello!");
'
JavaScript
SHA256-Test (JavaScript)
/*
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/Zitiert aus Digest
*/
async function digestMessage(message) {
const msgUint8 = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map(b=>b.toString(16).padStart(2, '0')).join('');
return hashHex;
}
console.log(await digestMessage("hello!"))
// -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
console.log(await digestMessage("Heiligenschein!"))
// -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
//Wenn Sie alle auf einmal mit Karte ausführen möchten
let target = ["hello!", "Heiligenschein!"];
console.log(await Promise.all(target.map(s=>digestMessage(s))))
// -> [
"ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b",
"3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
]
Recommended Posts