Introduction détaillée à l'exemple de code de génération par lots C# de mots de passe aléatoires qui doivent contenir des chiffres et des lettres et être chiffrés avec un algorithme de chiffrement.

黄舟
Libérer: 2017-03-29 11:25:10
original
1796 Les gens l'ont consulté

Cet article présente principalement C# Les mots de passe aléatoires générés par lots doivent contenir des chiffres et des lettres et être cryptés avec un algorithme de cryptage. Les amis dans le besoin peuvent se référer aux

Exigences. :

Le mot de passe doit contenir des chiffres et des lettres

Idées :

1. personnages. Forme chaîne : chars

2. Utilisez randrom.Next(int i) pour renvoyer un nombre aléatoire non négatif inférieur à la valeur maximale spécifiée.

3. Choisissez au hasard un nombre aléatoire a qui n'est pas inférieur à la longueur des caractères, et choisissez le a-ième caractère de la chaîne de caractères.

4. Boucle 8 fois pour obtenir le mot de passe à 8 chiffres

5. Boucle N fois pour obtenir le mot de passe par lots.

Le code est implémenté comme suitMainFonction :

static void Main(string[] args)
    {
      string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
      Random randrom = new Random((int)DateTime.Now.Ticks);
      string path1 = @"C:\Users\lenovo\Desktop\pws.txt";
      for (int j = 0; j < 10000;j++ )
      {
        string str = "";
        for (int i = 0; i < 8; i++)
        {
          str += chars[randrom.Next(chars.Length)];//randrom.Next(int i)返回一个小于所指定最大值的非负随机数
        }
        if (IsNumber(str))//判断是否全是数字
          continue;
        if (IsLetter(str))//判断是否全是字母
          continue;
        File.AppendAllText(path1, str);
        string pws = Md5(str,32);//MD5加密
        File.AppendAllText(path1, "," + pws + "\r\n");
      }
      Console.WriteLine("ok");
      Console.Read();
    }
Copier après la connexion

Utilisez habilement la fonction String.trim pour déterminer si tous ce sont des chiffres. Ce sont des lettres.

Description : string.trim Supprime les caractères d'espacement de début et de fin de l'objet String .

Renvoie : une copie de la chaîne avec tous les caractères d'espacement supprimés du début et de la fin de la chaîne.

a une surcharge : string.Trim(params char[] trimChars)

//Supprime un jeu de caractères spécifié dans le tableau de l'objet System.string actuel. Tous correspondances de début et de fin

trimChars : Pour supprimer le tableau de caractères de , la méthode

implémente le code suivant :

 //判断是否全是数字
    static bool IsNumber(string str)
    {
      if (str.Trim("0123456789".ToCharArray()) == "")
        return true;
      return false;
    }
    //判断是否全是字母
    static bool IsLetter(string str)
    {
      if (str.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()) == "")
        return true;
      return false;
    }
Copier après la connexion

Utilisez le cryptage MD5, le code de l'algorithme est implémenté comme suit :

/// <summary>
    /// MD5加密
    /// </summary>
    /// <param name="str">加密字元</param>
    /// <param name="code">加密位数16/32</param>
    /// <returns></returns>
    public static string Md5(string str, int code)
    {
      string strEncrypt = string.Empty;
      MD5 md5 = new MD5CryptoServiceProvider();
      byte[] fromData = Encoding.GetEncoding("GB2312").GetBytes(str);
      byte[] targetData = md5.ComputeHash(fromData);
      for (int i = 0; i < targetData.Length; i++)
      {
        strEncrypt += targetData[i].ToString("X2");
      }
      if (code == 16)
      {
        strEncrypt = strEncrypt.Substring(8, 16);
      }
      return strEncrypt;
    }
Copier après la connexion

Générez des mots de passe par lots, et les mots de passe cryptés sont comme indiqué ci-dessous :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal