C'est un mémo parce que j'ai trop peu d'occasions de l'utiliser et je ne me souviens plus quand j'ai pensé à l'utiliser.
SHA256 dans R
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("hello!"))
# -> [1] "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("Halo!"))
# -> [1] "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
Lors de l'exécution à partir de la ligne de commande
Lors de l'exécution à partir de la ligne de commande
Rscript -e '
if (!require("openssl")) install.packages("openssl")
print(openssl::sha256("hello!"))
'
Je suis inquiet si ça correspond vraiment ... Je pensais que cette anxiété ne pouvait pas être dissipée sans vérifier si les résultats étaient les mêmes dans différents environnements, alors quand je l'ai recherché, il était assez facile d'écrire dans une seule ligne dans de nombreux cas, donc c'est un mémo.
Je me suis demandé si je devais essayer deux ou trois des éléments suivants qui pourraient être exécutés, y compris le japonais, et vérifier si les résultats sont les mêmes.
Test SHA256 (commande Linux)
#echo+utiliser sha256sum
echo -n "hello!" | sha256sum
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b -
echo -n "Halo!" | sha256sum
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42 -
#echo+utiliser openssl
echo -n "hello!" | openssl sha256
# -> (stdin)= ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
echo -n "Halo!" | openssl sha256
# -> (stdin)= 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
La commande printf
peut être meilleure, car la commande echo
peut oublier l'option -n
.
Test SHA256 avec printf (commande Linux)
printf "hello!" | sha256sum
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b -
printf "Halo!" | sha256sum
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42 -
Node.js13.5
Test SHA256 (Nœud.js)
console.log(require("crypto").createHash("sha256").update("hello!").digest("hex"))
// -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
console.log(require("crypto").createHash("sha256").update("Halo!").digest("hex"))
// -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
Lors de l'exécution à partir de la ligne de commande
Lors de l'exécution à partir de la ligne de commande
node -e '
console.log(require("crypto").createHash("sha256").update("hello!").digest("hex"))
'
Python3.5
Test SHA256 (Python)
#3.5
print(__import__("hashlib").sha256("hello!".encode("utf-8")).hexdigest())
print(__import__("hashlib").sha256("Halo!".encode("utf-8")).hexdigest())
Lors de l'exécution à partir de la ligne de commande
Lors de l'exécution à partir de la ligne de commande
python3 -c '
print(__import__("hashlib").sha256("hello!".encode("utf-8")).hexdigest())
'
Ruby2.3
Test SHA256 (Ruby)
require "digest/sha2"
print Digest::SHA256.hexdigest("hello!")
# -> "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
require "digest/sha2"
print Digest::SHA256.hexdigest("Halo!")
# -> "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
#Ou
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("hello!")
# -> "ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b"
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("Halo!")
# -> "3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
Lors de l'exécution à partir de la ligne de commande
Lors de l'exécution à partir de la ligne de commande
ruby -e '
require "openssl"
print OpenSSL::Digest::SHA256.hexdigest("hello!")
'
Perl5
Test SHA256 (Perl)
use Digest::SHA qw(sha256_hex);
print sha256_hex("hello!");
# -> ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b
use Digest::SHA qw(sha256_hex);
print sha256_hex("Halo!");
# -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
Lors de l'exécution à partir de la ligne de commande
Lors de l'exécution à partir de la ligne de commande
perl -e '
use Digest::SHA qw(sha256_hex);
print sha256_hex("hello!");
'
JavaScript
Test SHA256 (JavaScript)
/*
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/Cité du résumé
*/
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("Halo!"))
// -> 3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42
//Lorsque vous souhaitez tout exécuter en même temps avec la carte
let target = ["hello!", "Halo!"];
console.log(await Promise.all(target.map(s=>digestMessage(s))))
// -> [
"ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b",
"3564dcbd2cb0145ebf4a2f1219f9354a4c91936f0bdfe545bbc5140bcd7bba42"
]
Recommended Posts