2014-12-23 14 views
-1

Мне нужно создать уникальный идентификатор с лимитом в 6 блоков. Этот идентификатор должен содержит буквы в верхнем регистре и номер.Создать уникальный идентификатор с длиной 6

Как я могу это сделать? Я использую эту дату, но я потерпел неудачу.

Подробнее ...

что Id просто не нужно повторять, но следует генерировать один, Whithout база в последней последовательности. Я могу сделать это на любом языке.

+2

Какой язык вы пытаетесь программировать это? Не могли бы вы просто использовать уникальную часть GUID? –

+1

Каковы требования этого уникального идентификатора? Можете ли вы просто работать через набор {000000, 000001, ..., 00000A, ..., ZZZZZZ}? –

ответ

0

Я сделал сообщение в блоге, чтобы создать сильный пароль SQL Server. Вы можете адаптировать это к тому, что вам нужно. Для лучшего сообщения в блоге формата here.

У нас есть требование, чтобы наши пароли менялись каждые 90 дней. Я хотел автоматизировать это, и это звучало довольно легко, но это было не так просто. Зачем? Потому что существует множество правил для паролей.

Во-первых, я должен хранить его в файле web.config. Так что никаких специальных символов XML.

quot " 
amp & 
apos ' 
lt < 
gt > 

Далее, если используется в строке соединения OLE DB или ODBC, пароль не должен содержать следующие символы: [] {}(),; ? *! @.

Наконец, сильные пароли должны содержит символы из, по меньшей мере, три из следующих категорий:

English uppercase characters (A through Z) 
English lowercase characters (a through z) 
Base 10 digits (0 through 9) 
Nonalphabetic characters (for example: !, $, #, %) 

Так держать все эти правила в виду, я создал простой класс. что я могу просто позвонить

public class PasswordGenerator 
{ 
    private static string CHARS_LCASE = "abcdefgijkmnopqrstwxyz"; 
    private static string CHARS_UCASE = "ABCDEFGHJKLMNPQRSTWXYZ"; 
    private static string CHARS_NUMERIC = "23456789"; 
    private static string CHARS_SPECIAL = "*-+_%/"; 
    private static string CHARS_ALL = CHARS_LCASE + CHARS_UCASE + CHARS_NUMERIC + CHARS_SPECIAL; 

    public static string GeneratePassword(int length) 
    { 
     char[] chars = new char[length]; 
     Random rand = new Random(); 

     for (int i = 0; i < length; i++) 
     { 
      switch (i) 
      { 
       case 0: 
        chars[i] = CHARS_LCASE[rand.Next(0, CHARS_LCASE.Length)]; 
        break; 
       case 1: 
        chars[i] = CHARS_UCASE[rand.Next(0, CHARS_UCASE.Length)]; 
        break; 
       case 2: 
        chars[i] = CHARS_NUMERIC[rand.Next(0, CHARS_NUMERIC.Length)]; 
        break; 
       case 3: 
        chars[i] = CHARS_SPECIAL[rand.Next(0, CHARS_SPECIAL.Length)]; 
        break; 

       default: 
        chars[i] = CHARS_ALL[rand.Next(0, CHARS_ALL.Length)]; 
        break; 
      } 
     } 

     return new string(chars); 
    } 
} 

Так что теперь я просто называю это новый пароль:

PasswordGenerator.GeneratePassword (13)

Смежные вопросы