相关疑难解决方法(0)

在Java中加密和在C#中解密为AES 256位

1.我有java函数加密xml文件并返回加密的String.

/// Java Class 
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class Crypt {

    public static String key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    public static byte[] key_Array = Base64.decodeBase64(key);

    public static String encrypt(String strToEncrypt)
    {       
        try
        {   
            //Cipher _Cipher = Cipher.getInstance("AES");
            //Cipher _Cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
            //Cipher _Cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");      

            Key SecretKey = new SecretKeySpec(key_Array, "AES");

            Cipher _Cipher = Cipher.getInstance("AES");     
            _Cipher.init(Cipher.ENCRYPT_MODE, SecretKey);       

            return Base64.encodeBase64String(_Cipher.doFinal(strToEncrypt.getBytes()));     
        }
        catch (Exception e)
        {
            System.out.println("[Exception]:"+e.getMessage());
        }
        return null;
    }

    public static void main(String[] args) {        
        StringBuilder sb …
Run Code Online (Sandbox Code Playgroud)

c# java encryption aes

12
推荐指数
2
解决办法
3万
查看次数

Java中的AES加密和C#中的解密

您好我已使用标准AES算法加密的加密十六进制字符串和密钥.码:

        final String key = "=abcd!#Axd*G!pxP";
        final javax.crypto.spec.SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
        final javax.crypto.Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, keySpec);
        byte [] encryptedValue = cipher.doFinal(input.getBytes());
        return new String(org.apache.commons.codec.binary.Hex.encodeHex(encryptedValue));
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用C#代码解密它:

            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            // Assumed Mode and padding values.
            rijndaelCipher.Mode = CipherMode.ECB;
            rijndaelCipher.Padding = PaddingMode.None;

            // AssumedKeySize and BlockSize values.
            rijndaelCipher.KeySize = 0x80;
            rijndaelCipher.BlockSize = 0x80;
            // Convert Hex keys to byte Array.
            byte[] encryptedData = hexStringToByteArray(textToDecrypt);

            byte[] pwdBytes = Encoding.Unicode.GetBytes(key);
            byte[] keyBytes = new byte[0x10];
            int len = …
Run Code Online (Sandbox Code Playgroud)

c# java encryption aes

5
推荐指数
2
解决办法
2万
查看次数

如何使用RijndaelManaged加密vb.net中的字符串,并使用PKCS5填充?

我使用以下代码初始化加密...

 Dim symmetricKey As New System.Security.Cryptography.RijndaelManaged()
 With symmetricKey
   .Key = Encoding.ASCII.GetBytes(Key)
   .IV = Encoding.ASCII.GetBytes(IV)
   .Mode = CipherMode.CBC
   .BlockSize = 128 
   .KeySize = 128 
   .Padding = PaddingMode.PKCS7
End With
Run Code Online (Sandbox Code Playgroud)

要求是使用PKCS5.vb.net中的填充模式仅包括

  • ANSIX923
  • ISO10126
  • 没有
  • PKCS7

所以我认为没有PKCS5的方法.有没有办法添加它,还是我需要自己编写加密方法?如果是这样 - 我该怎么写呢?是否有可靠的DLL支持它?

vb.net encryption rijndaelmanaged pkcs#5

4
推荐指数
1
解决办法
4792
查看次数

标签 统计

encryption ×3

aes ×2

c# ×2

java ×2

pkcs#5 ×1

rijndaelmanaged ×1

vb.net ×1