2 mystephen myStephen 于 2015.07.05 15:30 提问

Java代码翻译为C#代码
 public static String decrypt(String data, String key) {

        if (key.length() < 16) {
            throw new RuntimeException("Invalid AES key length (must be 16 bytes)");
        } else if (key.length() > 16) {
            key = key.substring(0, 16);
        }
        try {
            // 十六进制转换为二进制
            byte[] decryptFrom = parseHexStr2Byte(data);
            Cipher cipher = Cipher.getInstance(AES_ALGORITHM);// 创建密码器
            cipher.init(Cipher.DECRYPT_MODE, genKey(key));// 初始化
            byte[] result = cipher.doFinal(decryptFrom);
            return new String(result,"utf-8"); // 加密
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

实在没分了,实在翻译不过来,翻译过来又是乱码,实在没办法了。帮帮忙!

4个回答

91program
91program   Ds   Rxr 2015.07.05 15:33

parseHexStr2Byte 和 Cipher 等,有对应语言版本的实现?

Java 与 C# 下,DES 加密与解密的算法的问题,是否完全一样、或者说兼容还不确定吧。

caozhy
caozhy   Ds   Rxr 2015.07.05 15:48
miracle_yao
miracle_yao   2015.07.28 14:08
         public static String Decrypt(String data, String key)
        {
            if (key.Length < 16)
            {
                throw new Exception("Invalid AES key length (must be 16 bytes)");
            }
            else if (key.Length > 16)
            {
                key = key.Substring(0, 16);
            }
            try
            {
                // 十六进制转换为二进制
                //byte[] decryptFrom = parseHexStr2Byte(data); 
                //Cipher cipher = Cipher.getInstance(AES_ALGORITHM);// 创建密码器
                //cipher.init(Cipher.DECRYPT_MODE, genKey(key));// 初始化
                byte[] result;
                //result = cipher.doFinal(decryptFrom);
                return System.Text.Encoding.UTF8.GetString(result);
            }
            catch (Exception ex)
            {
                //TODO:处理Exception
            }
            return null;
        }

注释的代码需要调用的类的代码没有贴出来,无法帮你转了。

frank_20080215
frank_20080215   2015.07.05 18:50

不用翻译,直接将代码改成 .cs文件名即可。
这些代码和C#一模一样

Csdn user default icon
上传中...
上传图片
插入图片