Blowfish в C # с Java - PullRequest
       5

Blowfish в C # с Java

2 голосов
/ 25 мая 2011

Есть ли что-то в c # уже там с примером того же, что и в Java.Я пытаюсь код нижеШифрование выглядит правильно?Это имеет кучу?отметки в нем.

Cipher cipher = Cipher.getInstance("BlowFish/ECB/PKCS5Padding");

byte[] keyBytes = Encoding.ASCII.GetBytes(key);
        string keyHex = Hex.ToHexString(keyBytes); //4b334c33315551354f38325059344739

        string parameters = "{\"userId\":\"6440870\"}";
        byte[] parametersByte = Encoding.ASCII.GetBytes(parameters);
        string parametersHex = Hex.ToHexString(parametersByte); //7b22757365724964223a2236343430383730227d

        BlowFish bl = new BlowFish(keyHex);
        byte[] outputEncryptedByte = bl.Encrypt_ECB(parametersByte);
        string outputEncrypted = Encoding.ASCII.GetString(outputEncryptedByte); //7lC[t$?mQd?g???kE?W?[?
        string outputBase64 = System.Convert.

ToBase64String (outputEncryptedByte);// N2xDW3Qk / xgObVFkpmfBgchrRepXnVu9

Ответы [ 2 ]

2 голосов
/ 25 мая 2011

Это не реализовано в Framework, но вы можете получить реализацию в C # здесь

http://www.schneier.com/blowfish-download.html

просто поместите этот код в файл .cs в каталоге вашего проекта и используйте его следующим образом.

BlowFish b = new BlowFish("04B915BA43FEB5B6");
string plainText = "The quick brown fox jumped over the lazy dog.";
string cipherText = b.Encrypt_CBC(plainText);
MessageBox.Show(cipherText);
plainText = b.Decrypt_CBC(cipherText);
MessageBox.Show(plainText);
0 голосов
/ 02 августа 2013

Еще одна реализация BlowFish в Java - http://dexxtr.com/post/57145943236/blowfish-encrypt-and-decrypt-in-java-android

private byte[] encrypt(String key, String plainText) throws GeneralSecurityException {

    SecretKey secret_key = new SecretKeySpec(key.getBytes(), ALGORITM);

    Cipher cipher = Cipher.getInstance(ALGORITM);
    cipher.init(Cipher.ENCRYPT_MODE, secret_key);

    return cipher.doFinal(plainText.getBytes());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...