| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Шифрование |
| Автор: YoD 26.12.2004, 13:12 |
| Подскажите пожалуйста, как можно зашифровать (синхронным шифрование) и потом расшифровать: а). Содержимое тестовой переменной б). Файла |
| Автор: [Last]Wizard 27.12.2004, 15:53 |
| В пространстве имен System.Security.Cryptography реализована масса алгоритмов шифрования/дешифрования данных, такие как DES, RSA, алгоритмы электронно-цифровой подписи DSA, SHA-1, SHA-256, SHA-384, SHA-512, MD5, а также еще много интересного. |
| Автор: YoD 27.12.2004, 18:31 |
| Это я нашёл. Но разобраться с многообразием не смог. Всё что я освоил это: dim Enc as system.security.cryptography.simmetricalgorithm enc.createencriptor() А что дальше делать - незнаю... если кто разобрался - киньте плиз какой-нибудь рабочий исходник. Всё равно спасибо за информацию |
| Автор: [Last]Wizard 27.12.2004, 19:24 | ||
| В общем картина такова: 1. Класс System.Security.Cryptography.SymmetricAlgorithm - это абстрактный класс, базовый для симметричных алгоритмов шифрования, таких как DES и другие. Есть еще класс System.Security.Cryptography.AsymmetricAlgorithm - базовый для асимметричных алгоритмов (RSA, DSA, и др.) Класс абстрактный (MustInherit) - следовательно создать его экземпляр напрямую нельзя. * Симметричные алгоритмы - те, которые шифруются и дешифруются одним и тем же ключом, Асимметричные алгоритмы - системы с открытым (public) и секретным (private) ключами. 2. Доступ к реализациям конкретных алгоритмов производится с помощью классов-наследников, которые называются System.Security.Cryptography.XXXCryptoServiceProvider, где XXX - название алгоритма. Например System.Security.Cryptography.DESCryptoServiceProvider. 3. Шифрование файлов и любых других потоков производится с помощью класса System.Security.Cryptography.CryptoStream. Это класс - наследник от System.IO.Stream - предоставляет интерфейс для записи и чтения данных из этого потока. Для того, чтобы создать объект этого класса, необходимо указать реальный поток, куда будут записываться данные или откуда они будут считываться (например файл), шифратор/дешифратор, который будет непосредственно шифровать/дешифровать данные, а также режим использования потока (чтение или запись). 4. Для того, чтобы получить шифратор/дешифратор необходимо вызвать метод CreateEncryptor() или CreateDecryptor() класса System.Security.Cryptography.XXXCryptoServiceProvider. Эти методы возвращают ссылку на интерфейс System.Security.Cryptography.ICryptoTransform, реализация которого зависит от выбраного алгоритма шифрования. 5. Для шифрования статических данных (не файлов) можно использовать реализацию методов TransformBlock() и TransformFinalBlock() интерфейса System.Security.Cryptography.ICryptoTransform. 6. Рабочий исходник:
|