Как создать идентификационный код или ключ для сети? - PullRequest
1 голос
/ 28 декабря 2011

Я использую IP, USERID, DATETIME для создания кода безопасности в моем веб-приложении. Я хочу узнать больше информации о том, как создать защитный код, например:

string str="192.168.0.1,myid,20121227,12345";

Затем я шифрую строку:

string strC=encrypt(str);

Тогда строка strC - это мой код безопасности.

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Если под «кодом безопасности» вы действительно подразумеваете «сертифицированный идентификатор», то вам даже не нужно ничего шифровать; что вам действительно нужно, так это код аутентификации сообщения . Это механизм сохранения целостности, который сообщает вам, что «идентификатор, который представляет пользователь, является идентификатором, который я создал».

Если под «кодом безопасности» вы действительно подразумеваете «сеансовый ключ», то опять же нет необходимости шифровать: взять некоторую информацию о сеансе и объединить ее с множеством случайных данных (например, из java.security.SecureRandom). ) с использованием криптографической хеш-функции. Это создаст ключ шифрования, который будет уникальным и не поддающимся проверке. Лучше было бы использовать правильный алгоритм обмена ключами, такой как Диффи-Хеллман, если только вам не нужно беспокоиться об атаках со стороны среднего лица, и в этом случае вам потребуется некоторая форма аутентифицированного обмена ключами .

Итак ... что вы подразумеваете под "кодом безопасности"?

0 голосов
/ 28 декабря 2011

Как правило, вы используете хорошее решение. Иногда нам нужно знать о содержимом нашего ключа, так как вы использовали метод шифрования (потому что для каждого метода шифрования есть метод расшифровки) иногда нам просто нужен ключ для его назначениянашим пользователям, поэтому в этих случаях мы можем использовать односторонние алгоритмы, такие как хэш. Наконец, я говорю, что вы используете хороший способ, но у меня есть другое предложение для вашего решения (возможно, вы держите это предложение в уме).

измените свой метод шифрования / дешифрования следующим образом:

private string Encrypt (string str)
{

//Encryption str
//...


return HttpUtility.HtmlEncode(EncryptedStr);

}


private string Decrypt (string str)
{

str = HttpUtility.HtmlDecode(str);

//Decryption str
//...

return DecryptedStr;

}

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

Regard, Ali

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...