Voici plusieurs méthodes de cryptage couramment utilisées dans la transmission réseau :
(Partage de vidéos d'apprentissage : Vidéo de programmation)
Astuce : Ces cryptages impliquent une transmission en texte brut et doivent être cryptés et transmis via le protocole https.
1. Hachage de clé
Utilisez MD5 ou SHA1 et d'autres algorithmes de hachage pour crypter le texte brut (le cryptage ici est uniquement destiné aux personnes, pas aux machines, car ces algorithmes et machines peuvent utiliser les algorithmes correspondants Calculer it)
Avantages : Anti-falsification
Scénarios applicables : Téléchargements de fichiers ordinaires
Inconvénients : Aucune sécurité, certifiable
2. Cryptage symétrique
Avantages : sûr et authentifiable
Scénarios applicables : nombre fixe d'expéditeurs et de destinataires, peu d'utilisateurs clés
Inconvénients : relation de transmission réseau BS, trop de clés sont difficile à maintenir à moins que la clé ne soit cryptée et transmise
3. Cryptage asymétrique
3.1 Le destinataire envoie la clé publique (pour garantir l'intégrité des données)
Prémisse : L'expéditeur. reçoit la clé publique du destinataire lors de la première communication et l'enregistre localement
3.2 L'expéditeur envoie la clé publique (garantissant l'authentification de l'expéditeur)
Prémisse : Le destinataire reçoit la clé publique de l'expéditeur lors de la première communication et l'enregistre localement
Signature numérique
Applicable. scénarios : authentification de connexion
Inconvénients : confidentialité insuffisante
Shorthand
Algorithme symétrique
Algorithme symétrique.Create ()=>
Provider.CreateEncryptor()
Provider.CreateDecryptor()
CryptoStream(Stream stream,ICrytoTransform transform,CryptoStreamMode mode):
CryptoStream(encryptedSteam,encryptor,CryptoStreamMode.Write)/ /Cryptage prêt à lire vide cryptéSteam prêt à être écrit
CryptoStream(encryptedSteam,decryptor,CryptoStreamMode.Read)//Déchiffrement prêt à écrire un flux de texte chiffré encryptéSteam prêt à être lu
Cryptage asymétrique
Cryptage asymétrique (ASymmisticAlgorithm) :
Fournisseur
provider.ToXmlString(true);//Obtenir la paire de clés publique et privée
provider.ToXmlString(false);//Obtenir la clé publique
provier .FromXmlString(publicKeyXml);
provier.FromXmlString( privateKeyXml);
provider.Encrypt();
provider.Decrypt();
Exemple :
Chiffrement symétrique :
string key = "abc"; string sendContent="你好!"; var byteKey = Encoding.UTF8.GetBytes(key); var byteIV = Encoding.UTF8.GetBytes(key);//加密算法初始化向量 DESCryptoServiceProvider des = new DESCryptoServiceProvider();//使用des加密 byte[] bytesContent = Encoding.UTF8.GetBytes(sendContent); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byteKey, byteIV), CryptoStreamMode.Write); cs.Write(bytesContent, 0, bytesContent.Length); cs.FlushFinalBlock();
Recommandations associées : Tutoriel sur la sécurité du site Web
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!