2009-06-10 4 views
2

Я пытаюсь зашифровать что-то простое, например int или long. Простой способ, который я нашел, выглядит так:. Простой шифрование RSA

int num = 2; 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); 
byte[] numBytes = BitConverter.GetBytes(num); 
byte[] encryptedBytes = rsa.Encrypt(numBytes, true); 

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

Я знаю, что могу сократить результат, если я определяю RSACryptoServiceProvider (512) или RSACryptoServiceProvider (384), но это как можно меньше.

мне нужно 4 или 8 байт происходит в, и 4 или 8 байт выходит (соответственно)

Спасибо!

*** Пояснение:

Я хочу, чтобы зашифровать что-то маленькое (то есть 4 или 8 байт) и получить результат такого же размера. Самый простой способ сделать это на C# при использовании некоторого ключа (со встроенными библиотеками), а не на некоторых моделях и сменах

+0

Почему вы хотите зашифровать небольшой объект? Это может помочь вам получить лучший ответ, если у нас есть лучшее представление о том, что вы хотите достичь целиком. –

ответ

0

Это невозможно. RSA является так называемым block cipher (с переменной длиной блока).

Наиболее известный поточный шифр, вероятно, RC4, но .NET не имеет встроенной реализации. Алгоритм с небольшим размером блока, как и предложенный мной, вероятно, был бы самым простым. Если количество байтов не критично, я бы использовал AES (размер блока 128 бит).

Есть ли причина, по которой вы первоначально искали асимметричный алгоритм?

+0

Тогда я должен был уточнить свой вопрос. Я хочу зашифровать что-то маленькое (т.е. 4 или 8 байтов) и получить результат аналогичного размера. Каков самый простой способ сделать это на C# при использовании некоторого ключа (со встроенными библиотеками), а не в некоторых моделях и сменах. – user97889

+0

Должен признать, что я искал шифрование числа и не помню, что это значит, просто используйте RSA (heck, он шифрует :) Я рассмотрю пример blowfish ... – user97889

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

  • Нет связанных вопросов^_^