Articles of криптография

Как я могу расшифровать зашифрованное значение MCRYPT_RIJNDAEL_256 в C #, которое было зашифровано mcrypt в PHP?

Я пытаюсь прочитать значение Base64-Encoded из таблицы базы данных, управляемой на стороне Linux. В этой таблице есть столбец с именем first_name. На стороне Linux я могу легко ее расшифровать, используя следующую команду в PHP: $data = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, "patient_fn_salt", base64_decode("H6XmkH+VWvdD88THCliKJjLisGZIBk3CTNvyQMLnhpo="), MCRYPT_MODE_ECB); Однако я стараюсь как можно больше дублировать эту логику на стороне C #, и все, […]

Сделать mt_rand () максимально безопасным

Я пишу программу лотереи, где у людей есть билеты, которые обозначены натуральными числами в диапазоне от 1 до 100 включительно. Я использую mt_rand(1,100) чтобы сгенерировать номер выигрышного билета, а затем он выводится на сайт, чтобы каждый мог его увидеть. Теперь я сделал небольшое исследование и узнал из вики-статьи Merseene, что: Наблюдая достаточное количество итераций (624 […]

Простая криптография: алгоритм дешифрования, необходимый в PHP

Я работаю на веб-странице, что у меня есть такой текст: АА, ВВ, СС, А1, В2, С3 И я хочу, чтобы какой-то код заменил слово (например, AA) на строку, сохраненную в переменной, например, это моя переменная php: <?php $var1 = "A"; //For AA $var2 = "B"; //For BB $var3 = "C"; //For CC $var4 = "1"; […]

Может ли случайный сон предотвратить временные атаки?

Из Википедии В криптографии временная атака представляет собой атаку бокового канала, в которой злоумышленник пытается скомпрометировать криптосистему, анализируя время, затраченное на выполнение криптографических алгоритмов. На самом деле, чтобы предотвратить временные атаки, я использую следующую функцию, взятую из этого ответа : function timingSafeCompare($safe, $user) { // Prevent issues if string length is 0 $safe .= chr(0); […]

RSA-расшифровка данных в C # (.NET 3.5), которая была зашифрована с помощью openssl в php 5.3.2

Может, кто-то может меня убрать. Сейчас я занимаюсь серфингом. Шаг №1: Создайте корневой сертификат Генерация ключей на unix 1) openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout privatekey.pem -out mycert.pem 2) openssl rsa -in privatekey.pem -pubout -out publickey.pem 3) openssl pkcs12 -export -out mycertprivatekey.pfx -in mycert.pem -inkey privatekey.pem -name "my certificate" Шаг №2: Работает […]

PHP: короткий идентификатор, подобный Youtube, с солью

Мне нужно кодировать / шифровать идентификаторы базы данных и добавлять их к моим URL-адресам. Безопасность – это не проблема, с которой я пытаюсь справиться, но я ищу что-то с умеренной безопасностью. Основная цель – иметь короткие идентификаторы, которые уникальны и безопасны для URL. Следующий фрагмент кажется, что он будет делать то, что мне нужно (из […]

Почему MD5's UUID не очень хорошая идея?

PHP имеет функцию uniqid (), которая генерирует UUID. В примерах использования он показывает следующее: $token = md5(uniqid()); Но в комментариях кто-то говорит это : Генерация MD5 из уникального идентификатора наивна и снижает значительную часть уникальных идентификаторов, а также обеспечивает значительную (атакующую) стриктуру в домене MD5. Это глубоко сломанная вещь. Правильный подход – использовать уникальный идентификатор […]

Шифрование: использование вектора инициализации против ключа?

Я использую PHP-библиотеку mcrypt и алгоритм AES-256 (rijndael), который требует запуска и вектора инициализации key +. Мое логическое мышление на самом деле не согласуется с этим. Не достаточно ли одного ключа? Теоретический сценарий: Если бы у меня были зашифрованные конфиденциальные данные, хранящиеся в базе данных, которые только владелец мог бы расшифровать, было бы целесообразно использовать […]

Использование PHP mcrypt с Rijndael / AES

Я пытаюсь зашифровать некоторые текстовые сообщения, используя mcrypt от php и шифрования Rijndael, но я не уверен в MCRYPT_MODE_modename (согласно руководству PHP они доступны «ecb», «cbc», «cfb», «ofb», nofb "или" stream ", но я читал, что на самом деле еще несколько). Я понятия не имею, что делают каждый или как их использовать. Я читал две […]

Как шифровать данные в php с помощью общедоступных / закрытых ключей?

У меня есть небольшая строка некоторых данных (менее 1 КБ), которые я бы хотел, чтобы пользовательские агенты переходили на другие сайты, когда они отправляются с моего сайта. Чтобы другие сайты проверяли, что я был тем, кто создал строку, я имею два варианта. Сервер возвращает меня назад, чтобы подтвердить (например, paypal, openid и т. Д.). Я […]