手上有一人项目,是用手机端访问网站(只能手机访问),并将网站当前页面的所有HMTL标签传送给后台,后台采用的是.NET;在.NET端都是以GET页面公开地址的方式访问,但在URL内传送HTML标签会报错,所以采用在JAVA端将获取到的内容用DES加密,然后再到.NET解密,但现在出现一个问题,JAVA端加后在.NET端解密码不成功。不懂的JAVA的代码,
java端代码:
public static final String SREDES="DES";
public static final String KEYDES="comDDDDXXX";
/**
* Description 根据键值进行加密
* @param data
* @param key
* 加密键byte数组
* @return
* @throws Exception
*/
public static String encrypt(String data, String key) throws Exception {
byte[] bt = encrypt(data.getBytes(), key.getBytes());
String strs = Base64.encode(bt);
return strs;
}
private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
// 生成一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密钥数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(SREDES);
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance(SREDES);
// 用密钥初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
return cipher.doFinal(data);
}
在.NET内需要先定一个向量IV,然后再给一个加密码的KEY,再根据这两个对内容进行加密,以上的代码中,如何分析那个能跟IV对应。求JAVA大神帮忙分析分析
另外各位是否有过JAVA加密,.NET解密的源码,给否给个参考,先谢过啦