Algorithme secret national SM2 (cryptage JS, C#, décryptage Java)

Un test d'intrusion courant considère l'utilisation de la transmission en texte clair des mots de passe pour les connexions aux sites Web comme un risque. Il est recommandé d'utiliser l'algorithme National Secret Algorithm ou RSA pour la transmission cryptée des mots de passe.

Chiffrement RSA (chiffrement JS, C#, déchiffrement Java) veuillez vous référer à "Chiffrement symétrique RSA (chiffrement JS, C#, déchiffrement Java)"

Cet article décrit la mise en œuvre de l'algorithme secret national SM2.

1. Principe de fonctionnement
Le front-end js utilise la clé publique pour chiffrer, et le back-end utilise la clé privée pour déchiffrer (le back-end peut être en langage C# ou java).

2. Étapes de mise en œuvre

Afin de faciliter la vérification des résultats de chiffrement et de déchiffrement, cet article démontre avec un ensemble de clés publiques et privées fixes (la manière de générer les clés publiques et privées sera décrite plus loin).

Clé publique : 04F59485B23304990ED45E42521BE504D0DE358B9E4031A172EF48700071AF985A8EA8B12BB479E24152814EE61840932BFFF5B3B1657C9CF50A61756B1D901E 1C

Clé privée:

78AEBAE7DE025B6954357DB327F4AE412B3657B1E1ED36F89927C065155DBA9A

(1) Cryptage frontal JS

Regardez simplement la démo, le code fait référence au code source de la page Web.

 Le résultat de cryptage de l'adresse de démonstration en ligne  est différent à chaque fois.

(2) Cryptage et décryptage Java SM2

J'utilise VScode pour déboguer le code Java ici. L'ensemble de la structure du programme ressemble à ceci :

Remarque : Le chiffrement et le déchiffrement Java utilisent la version bcprov-jdk16-1.46.jar du package.

(Voir le lien de téléchargement à la fin de l'article pour le code complet)

(3) Chiffrement et déchiffrement C# SM2

J'ai écrit un outil de débogage, qui ressemble à ceci:

Remarque : le chiffrement et le déchiffrement C# utilisent BouncyCastle.Crypto.dll, version : 1.9.0.1, différentes versions du code de chiffrement ne sont pas les mêmes, lancez ce problème pendant longtemps.

Téléchargement complet du code :

https://download.csdn.net/download/a497785609/87459516

Adresse de téléchargement alternative :

https://qingshanboke.com/uploadfiles/demo/sm2.rar

Adresse GitHub :

https://github.com/zhangqs008/SM2 

Je suppose que tu aimes

Origine blog.csdn.net/a497785609/article/details/129102042
conseillé
Classement