[LINUX] Trouvez la valeur SHA256 avec R (avec bonus)

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.

Environnement d'exécution

SHA256 dans R

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!"))
'

Assurez-vous que le résultat est vraiment correct

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.

Commande Linux

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

Trouvez la valeur SHA256 avec R (avec bonus)
Trouvez la définition de la valeur de errno
[Python] Trouvez la deuxième plus petite valeur.
Extraire la valeur maximale avec les pandas.
Trouvez la distance d'édition (distance de Levenshtein) avec python
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 2)
Trouvons la valeur maximale python (correction ver)
Trouvez le différentiel du second ordre avec la différenciation automatique JAX
Trouvez la position au-dessus du seuil avec NumPy
Découvrez la fraction de la valeur saisie en python
Découvrez le jour par date / heure
Décrivez ec2 avec boto3 et récupérez la valeur
Trouvez l'itinéraire le plus court avec l'algorithme de Python Dijkstra
Calculer la somme des valeurs uniques par tabulation croisée des pandas
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
Découvrez l'emplacement des packages installés avec pip
Extraire la valeur maximale avec les pandas et modifier cette valeur
Trouvez le maximum de Python
J'ai essayé de trouver l'entropie de l'image avec python
Mémo pour obtenir la valeur côté html-javascript avec jupyter
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
Hériter de la bibliothèque standard pour trouver la valeur moyenne de Queue
Votre URL n'a pas répondu avec la valeur du paramètre de défi.
Trouver l'index de la valeur maximale (valeur minimale) d'un tableau multidimensionnel
Multipliez la valeur de l'axe x par n lors du traçage avec pylab
La vraie valeur de l'automatisation Terraform à partir d'Oracle Cloud