紧急求助:如何在Linux下用C语言实现MD5/DES解密

butai 2010-08-24 01:39:50
下面的代码,是用Java实现的MD5/DES解密,请问在Linux中如何才能用C来实现。有没有比较现成的内核函数可以调用?
public static byte[] ed(String s)throws Exception
{

String Key="123!@#qweQWE/.,?> <abc";
byte _fldint[] = { -87, -101, -56, 50, 86, 53, -29, 3};
BASE64Decoder BASE64Decoder = new BASE64Decoder();
byte abyte9[] = BASE64Decoder.decodeBuffer(s);

PBEParameterSpec pbeparameterspec = new PBEParameterSpec(_fldint,19);
PBEKeySpec pbekeyspec = new PBEKeySpec(Key.toCharArray());
SecretKeyFactory secretkeyfactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
javax.crypto.SecretKey secretkey = secretkeyfactory.generateSecret(pbekeyspec);
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.DECRYPT_MODE, secretkey, pbeparameterspec);
return cipher.doFinal(abyte9);
}

谢谢。
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cooliess 2011-07-15
  • 打赏
  • 举报
回复
LZ兄弟。把你的代码能不能共乡以下
butai 2010-09-03
  • 打赏
  • 举报
回复
谢谢各位的回复。问题已解决。参照JAVA的 PBE即可知道它们的具体实现。
butai 2010-08-24
  • 打赏
  • 举报
回复
非常感谢二位的回复。
后来发现我自己没问清楚。其实Des和Md5的C语言实现这个论坛和网上都有很多。
但我不太明白的是:
如何在C环境下结合两个算法实现前面给出的java代码同样的功能?

1.
PBEWithMD5AndDES 具体是怎样的过程?是如何将MD5和DES联合起来?是用MD5在原有密钥的基础上导出一个密钥,再根据DES算法利用它对明文进行加密还是什么?

2.
PBEParameterSpec构造函数中有一个参数:迭代次数,这个迭代次数指的是哪部分运算的迭代?

谢谢。
wwwunix 2010-08-24
  • 打赏
  • 举报
回复
相关库函数如下:
#include <openssl/md5.h>

unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);
int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data,unsigned long len);
int MD5_Final(unsigned char *md, MD5_CTX *c);
jessiefn 2010-08-24
  • 打赏
  • 举报
回复
好像没有库函数。网上有现成的c版本的代码,这个论坛应该就能搜到

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧