Keresés

Új hozzászólás Aktív témák

  • togvau

    senior tag

    válasz sztanozs #7688 üzenetére

    Valamennyire használható, de így sem dekódolja rendesen amit kéne.

    Java-ban amiben működik a dekódolás ilyen a beállítása a dekódolónak:

    AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv);
    try
    {
    PBEKey key = (PBEKey)
    SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1").generateSecret(new PBEKeySpec(new
    String(kulcsbytearr).toCharArray(), salt, 7, 128));
    SecretKey encKey = new SecretKeySpec(key.getEncoded(), "AES");
    dcipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    dcipher.init(Cipher.DECRYPT_MODE, encKey, paramSpec);

    C# nem tudom mi ennek a secretkeynek a megfelelője, szóval java-ból kihoztam a végső kulcsot az enckey-ből.

    static Stream DecryptStream(Stream cipheredStream, byte[] Key, byte[] IV)
    {
    // Check arguments.
    if (cipheredStream == null/* || cipherText.Length <= 0*/)
    throw new ArgumentNullException("cipherText");
    if (Key == null || Key.Length <= 0)
    throw new ArgumentNullException("Key");
    if (IV == null || IV.Length <= 0)
    throw new ArgumentNullException("IV");

    Rijndael rijAlg = Rijndael.Create();
    rijAlg.Key = Key;
    rijAlg.IV = IV;
    rijAlg.Mode = CipherMode.CBC;
    //rijAlg.Padding = PaddingMode.PKCS7;
    rijAlg.KeySize = 128;
    ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV);
    return new CryptoStream(cipheredStream, decryptor, CryptoStreamMode.Read);
    }

    De nem stimmel a dekódolt anyag. Ilyen PKCS5 nincs is a C#-ban, csak 7

Új hozzászólás Aktív témák