2009-12-14 1 views
3

У меня есть клиент программы рубин, который шифрует пароль с строкой # склепе, как такРубин строка # крипты в C# и PHP

encrypted = password.crypt(SALT) 
    # removing first two characters which actually are the salt for safety 
    return encrypted[2, encrypted.size - 2] 

он затем посылает его на сервер для сравнения с ней хранится предварительно шифруется строку , как-то мне нужно, чтобы иметь возможность отправлять один и тот же зашифрованный пароль с помощью приложения C# и веб-страницы php и все равно иметь возможность входа в систему с тем же паролем от любого другого клиента.

Какой будет эквивалентный код в C# и php для шифрования?

ответ

6

C

  • crypt(3)

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

    ключ является введенным пользователем паролем.

    соль - это двухсимвольная строка, выбранная из набора [a-zA-Z0-9./]. Эта строка используется для возмущения алгоритма одним из 4096 способов.

Рубин

  • crypt

    Применяется односторонний криптографический хэш StR путем вызова стандартной функции библиотеки склеп. Аргументом является строка соля, длина которой должна быть длиной два символа, каждый символ из [a-zA-Z0-9./].

PHP

  • crypt

    склепа() возвращает зашифрованную строку, используя стандартный алгоритм Unix DES на основе шифрования или альтернативных алгоритмов, которые могут быть доступны в системе.

Python

  • crypt.crypt

    Этот модуль реализует интерфейс к крипты (3) рутинного, который представляет собой один хэш-функция основана на платформе модифицированный алгоритм DES;

C#

В .NET Framework не включает в себя API для крипта функции Unix, но вот некоторые libraryies, которые обеспечивают реализацию:

  • CryptAPI

    CryptAPI - это библиотека C#, которая содержит нереализованные алгоритмы в .NET framework (NT, NTLM, BlowFish, DES и MD5), связывающие и эмулируя функцию unix crypt(), запрограммированную на C#. Основная цель - обеспечить обратную совместимость.

  • A C# implementation of Unix crypt()