java进行加密,C进行解密 可行吗,哪里有相应两个代码下载? java进行加密,C进行解密 可行吗,哪里有相应两个代码下载? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java 加密用得是 /** * 根据参数字符串生成DES密钥 */ public static SecretKey getDeskey(String key) throws Exception { try{ byte[] key_byte = key.getBytes(); DESKeySpec deskeyspec = new DESKeySpec(key_byte); SecretKeyFactory skf = SecretKeyFactory.getInstance("DES", "SunJCE"); return (SecretKey) skf.generateSecret(deskeyspec); } catch(Exception e) { throw new Exception("生成DES密钥异常!"); } } /** * DES加密 */ public static String DESEncrypt(String data,String key) { String s =""; try{ SecretKey deskey = getDeskey(key); Cipher c1 = Cipher.getInstance(Algorithm); c1.init(Cipher.ENCRYPT_MODE,deskey); byte[] cipherByte = c1.doFinal(data.getBytes()); s = new sun.misc.BASE64Encoder().encode(cipherByte); }catch (NoSuchAlgorithmException e1) {e1.printStackTrace();} catch (NoSuchPaddingException e2) {e2.printStackTrace();} catch (Exception e3) {e3.printStackTrace();} return s; }c加密 用得是 http://www.vccode.com/file_show.php?id=1823为什么加密后得得到得密文分别不同 Java里面不支持位运算,而c是支持的,很多算法需要位运算。但DES是基于8位(即字节加解密)的,应该出来的结果是一样的,你可以将两个结果比较看看,也许Java加密后又采用的其它封装格式,如再进行Base64编码。 都说过了,在实现上可能会有不一样的地方,就像前面的仁兄所说,Java是不支持位运算的,你检查一下解出来的结果与原文有什么联系,例如是不是每个字节的高位与低位对调了...我最近有些忙所以不能帮你看代码,不好意思。 动态创建的ActiveX控件如何响应消息? 怎么不能把文件的内容读到Edit类中? 高分求救用NERO SDK 刻录整个目录(包括子目录)到光盘的源代码 如何将一段含有中文的CString保存到文件中? 求在VC中将十进制数转换为十六进制数的函数!(送高分)急!!! 我毕业后~能挣多少?谁知道~让我心里有些底~也给我MM一个底~她对我没什么信心~ Socket函数WSAStartup支持Win95吗? 一个C++的菜鸟问题 两个头文件互相include出现的问题 有谁接活干? 如何动态用代码固定listbox的滑条和取消这个功能? 升双星!!哈哈!高兴!给大家散分了!!
/**
* 根据参数字符串生成DES密钥
*/
public static SecretKey getDeskey(String key) throws Exception {
try{
byte[] key_byte = key.getBytes();
DESKeySpec deskeyspec = new DESKeySpec(key_byte);
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES", "SunJCE");
return (SecretKey) skf.generateSecret(deskeyspec);
}
catch(Exception e)
{
throw new Exception("生成DES密钥异常!");
}
} /**
* DES加密
*/ public static String DESEncrypt(String data,String key)
{
String s ="";
try{
SecretKey deskey = getDeskey(key);
Cipher c1 = Cipher.getInstance(Algorithm);
c1.init(Cipher.ENCRYPT_MODE,deskey);
byte[] cipherByte = c1.doFinal(data.getBytes());
s = new sun.misc.BASE64Encoder().encode(cipherByte);
}catch (NoSuchAlgorithmException e1) {e1.printStackTrace();}
catch (NoSuchPaddingException e2) {e2.printStackTrace();}
catch (Exception e3) {e3.printStackTrace();} return s;
}c加密 用得是 http://www.vccode.com/file_show.php?id=1823为什么加密后得得到得密文分别不同
但DES是基于8位(即字节加解密)的,应该出来的结果是一样的,你可以将两个结果比较看看,也许Java加密后又采用的其它封装格式,如再进行Base64编码。