随笔-118  评论-721  文章-2  trackbacks-10

最新评论

共15页: 1 2 3 4 5 6 7 8 9 下一页 末页 
哦 我承认我是一个茫人!!!
你好,能給我Borland C++ Builder 6.0的代码,謝謝! lovewindows@gmail.com
下了玩了下,不错的想法,支持好东西
用了一下,很不错。。。楼主真有想法。
下来试用了哈,多不多的,楼主很强大啊
非常好的参考!!!!!!而且lz的习惯非常好!
楼主能不能发我c#版本的。谢谢/ cqzhang@yeesky.net
楼主你好,能否发送份BCB的完整代码,谢谢! wkqlxb@sina.com
很有用,谢谢
请问搂主,密文以原始字符显示为什么解密后有乱码,有办法解决吗?谢谢
好高的楼。。。继续加砖上瓦
Re:发布yxyDES2的C语言版 benbenfly 2011-08-04 23:47  
博主能否将des和3des编译成dll,以便于在其他程序中调用呢?
@Qs_monkey 标示错误,不是S2而是S4
我从这http://www.pin5i.com/showtopic-23753.html下载的yxyDES_VC,跟网路上找到的其他S-box的资料核对了一下,发现S1跟S4的好像有些许不同,是否有输入错误?? 经过修正常网路资料,发现再次执行可以正确解密回来了^^ S1 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, [12], 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1,[15], 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, S2 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, [6], 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14, 用[]框起来的就是我找到的错误的地方.
楼主你好 我用普通的DES加密测试 密钥:12345678 char temp[16]={43 , 43 , 54 , 51 , 43 , 43 , 54 , 51 , 42 , 42 , 49 , 46 , 46 , 46 , 49 , 49}; 将temp这个char array拿去进行加密后再解密,其结果会无法正确解密回来, 解密回来的资讯>>{43 , 43 , 54 , 51 , 0 , 223 , 218 , 90 , 178 , 40 , 93 , 168 , 38 , 145 , 5 , 59}; 发现解密后的资讯,他的前4个部分{43,43,54,51}的确跟原来的一样,但是后面的12个部分却是跟密文的部份一样. 对于楼主释出的源代码,我还没有很了解,所以想请问楼主这个这是发生什么问题?? 那该用什么方法解决???
好文章,哈哈。 我也是加密解密的小白。。。。
Re:迅雷产品经理笔试题 caodj 2011-07-22 10:52  
第一次 盐分成 70 70 第二次 盐分成 70 35 35 第三次 把70和35的混在一起为105 加一个5的砝码,平衡后带砝码一边的盐为50 把其他的盐混在一起就是90 第二题 一面放两个药,重的一面为坏的,由重的一面拿下一个药,如果平衡则剩下下的为坏的,否则拿下的为坏的
Re:迅雷产品经理笔试题 mqiezi 2011-07-06 05:30  
2.有4瓶药,其中一瓶变质了,已知变质的药的重量为没变质的质量+1,怎样只称一次就能找出变质的药. 11 22 33 44 1144 vs 2233 左1 4 右 2 3
这句似乎有点问题: byte[] StrRes = Encoding.Default.GetBytes(Source_String); Encoding.Default 会随着操作系统ANSI本地代码页不同而变化(比如日文操作系统和中文操作系统就不同),因此导致上面的程序在不同语言的操作系统上会哈希得不同的结果。
@乖乖的小峰峰 安装vc_redist,Google 一下就出来了,只有几兆
上面的代码在写for循环的时候少了一个break, 如果第j个字节不为0,则把前j+1个字节读出,然后退出for循环 for(int j = 7; j >= 0; j--) { if(buff[j] != 0) { fwrite(myDES->GetPlaintext(),sizeof(char),j+1,fpDst); break; } }
解密的时候需要判断是否为0, 代码如下 CString szSrcPath,szDstPath,szKey1,szKey2; this->GetDlgItemTextA(IDC_EDIT14,szKey1); this->GetDlgItemTextA(IDC_EDIT15,szKey2); this->GetDlgItemTextA(IDC_EDIT10,szSrcPath); this->GetDlgItemTextA(IDC_EDIT11,szDstPath); FILE *fpSrc,*fpDst; char buff[8] = {0}; long fileSize = 0; if(szSrcPath == "") { MessageBox(TEXT("没有选择要打开的文件路径"),TEXT("BeeLock"),NULL); } if(szDstPath == "") { MessageBox(TEXT("没有选择文件保存路径"),TEXT("BeeLock"),NULL); } if(szKey1 == "") { MessageBox(TEXT("密码不能为空"),TEXT("BeeLock"),NULL); } if(szKey2 == "") { MessageBox(TEXT("确认密码不能为空"),TEXT("BeeLock"),NULL); } if(this->DesComparePWD(szKey1,szKey2) == false) { MessageBox("两次输入的密码不一致!"); } else { if((fpSrc = fopen(szSrcPath.GetBuffer(),"rb")) == NULL) { MessageBox("打不开源文件!","错误",MB_OK | MB_ICONERROR); } if((fpDst = fopen(szDstPath.GetBuffer(),"wb")) == NULL) { MessageBox("打不开目的文件!","错误",MB_OK | MB_ICONERROR); } else { fseek(fpSrc,0,SEEK_SET); fseek(fpSrc,0,SEEK_END); fileSize = ftell(fpSrc); rewind(fpSrc); DES *myDES = new DES(); myDES->InitializeKey(szKey1.GetBuffer(),0); int circleNum = fileSize / 8; for(int i = 0; i < circleNum; i++) { memset(buff,0,8); fread(buff,sizeof(char),8,fpSrc); myDES->DecryptData(buff,0); fwrite(myDES->GetPlaintext(),sizeof(char),8,fpDst); } //解决解密时多读了被填充的0的问题 memset(buff,0,8); fread(buff,sizeof(char),8,fpSrc); myDES->DecryptData(buff,0); for(int j = 7; j >= 0; j--) { if(buff[j] != 0) { fwrite(myDES->GetPlaintext(),sizeof(char),j+1,fpDst); } } fclose(fpSrc); fclose(fpDst); MessageBox("解密完成!","提示",MB_OK | MB_ICONINFORMATION); this->SetDlgItemTextA(IDC_EDIT14,""); this->SetDlgItemTextA(IDC_EDIT15,""); this->SetDlgItemTextA(IDC_EDIT10,""); this->SetDlgItemTextA(IDC_EDIT11,""); } }
对解密后文件末尾出现乱码做了修改,原因是,加密是以8字节为单位,不足8为,以0补齐,所以解密时对凑补的0解密就出现了有乱码,所以只要在解密时判断,不为0时写入解密文件即可 代码如下: CString szSrcPath,szDstPath,szKey1,szKey2; this->GetDlgItemTextA(IDC_EDIT12,szKey1); this->GetDlgItemTextA(IDC_EDIT13,szKey2); this->GetDlgItemTextA(IDC_EDIT9,szSrcPath); this->GetDlgItemTextA(IDC_EDIT6,szDstPath); FILE *fpSrc,*fpDst; char buff[8] = {0}; long fileSize = 0; if(szSrcPath == "") { MessageBox(TEXT("没有选择要打开的文件路径"),TEXT("BeeLock"),NULL); } if(szDstPath == "") { MessageBox(TEXT("没有选择文件保存路径"),TEXT("BeeLock"),NULL); } if(szKey1 == "") { MessageBox(TEXT("密码不能为空"),TEXT("BeeLock"),NULL); } if(szKey2 == "") { MessageBox(TEXT("确认密码不能为空"),TEXT("BeeLock"),NULL); } if(this->DesComparePWD(szKey1,szKey2) == false) { MessageBox("两次输入的密码不一致!"); } else { if((fpSrc = fopen(szSrcPath.GetBuffer(),"rb")) == NULL) { MessageBox("打不开源文件!","错误",MB_OK | MB_ICONERROR); } if((fpDst = fopen(szDstPath.GetBuffer(),"wb")) == NULL) { MessageBox("打不开目的文件!","错误",MB_OK | MB_ICONERROR); } else { fseek(fpSrc,0,SEEK_SET); fseek(fpSrc,0,SEEK_END); fileSize = ftell(fpSrc); rewind(fpSrc); DES *myDES = new DES(); myDES->InitializeKey(szKey1.GetBuffer(),0); while(!feof(fpSrc)) { memset(buff,0,8); fread(buff,sizeof(char),8,fpSrc); myDES->EncryptData(buff,0); fwrite(myDES->GetCiphertextInBytes(),sizeof(char),8,fpDst); } fclose(fpSrc); fclose(fpDst); MessageBox("加密完成!","提示",MB_OK | MB_ICONINFORMATION); this->SetDlgItemTextA(IDC_EDIT12,""); this->SetDlgItemTextA(IDC_EDIT13,""); this->SetDlgItemTextA(IDC_EDIT9,""); this->SetDlgItemTextA(IDC_EDIT6,""); } }
[quote]wuhongzhao:有没有java版本的Demo啊?[/quote]
这个程序运行后 生成.exe的MFC文件 放在别人的电脑为什么运行不了 怎么解决这个问题 把它变成通用软件不需要框架支持
Re:[学习]SVM入门(一) 穆杉 2011-04-21 16:19  
您好,我最近在做水质参数的反演,想利用SVR支持向量回归的建立反演模型,通过遥感图像的反射率反演水质参数,我直接利用Weka进行训练得出参数,然后想利用这些参数进行回归预测,但不知道怎么建立方程 此前也建立神经网络的反演模型,BP神经网络的方程比较清晰,通过Weka计算权重和阈值,直接代入神经网络的方程,就能根据方程进行预测。但是对于SVM我一直不知道如何利用取得的参数建立方程,它的方程似乎很复杂,不知道怎么代参数...请赐教...
有没有java版本的Demo啊?
学习了,最近在看消息认证方面的东西..呵呵,加解密算法也看了看。 像这么详细的讲解真是少见..我辈受益颇多啊 不知道 博主 有没空,也讲讲 MAC(消息认证).. 特别是用的最多的MD5
[quote]Senna:请指教一下:这个DES加密怎样才能做成与DES加密解密工具2.1里生成的密码一样?[/quote]
[quote]jansnes: C# DES 加密的结果 与 C++ ,JAVA ,DELPHI 得出来的 DES 加密结果不一样, 请问这是怎么回事吗? C# 代码 //加密方法 public string Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Mode = CipherMode.ECB; //把字符串放到byte数组中 ...[/quote]
C# DES 加密的结果 与 C++ ,JAVA ,DELPHI 得出来的 DES 加密结果不一样, 请问这是怎么回事吗? C# 代码 //加密方法 public string Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Mode = CipherMode.ECB; //把字符串放到byte数组中 //原来使用的UTF8编码,我改成Unicode编码了,不行 byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); //byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt); //建立加密对象的密钥和偏移量 //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 //使得输入密码必须输入英文文本 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } 与学渊 DES2.1 的结果不一样? 请问C# 怎么能与其它 语言的DES 统一,互转? 尹学渊出来解答下吧
Re:[分享]软件开发---全套规范 zelad 2011-03-20 15:40  
这个很好,很规范,谢谢分享!
多谢多谢!!终于把des算法全部搞清楚了,楼主讲得很不错。
Re:HP大中华区总裁孙振耀退休感言 真爱无悔 2010-12-28 13:29  
多谢lz分享。。。。
Re:Mastering structs in C# Mareen 2010-11-30 21:20  
我也一直被内存对齐困扰,看了这个帖子瞬间明白了
不错,善于总结和创新,一起学习了
Re:[原创]DES加密解密程序2.0发布 applehao 2010-11-10 12:40  
楼主您能给我一份VC++的代码吗?谢谢!948146251@qq.com
您好,尹学渊,感谢分享这么好的东西。 我现在想在VC++里使用您的类对数据进行加密,然后在C#里对数据进行解密。搞了好久都没完成。我使用您在另外一篇文章里提供的C# DES方法,无论是加密还是解决,都跟这个工具生成的代码不一样。 如果您有现成的VC++与C# DES加密解密交互的代码。麻烦给我发一份,"garyyeh@163.com",实现C++加密 C#解密和C#加密 C++解密 感激不尽!
同问,C#加密出来的结果好像不一样,能给我一个C#的代码吗?11767762@qq.com,谢谢。
Re:[分享]软件开发---全套规范 freeish 2010-10-19 21:13  
谢谢楼主 我正准备自己开始做小项目 到时候碰到解决不了的 请教楼主哈
共15页: 1 2 3 4 5 6 7 8 9 下一页 末页 
哈佛有一个著名的理论:
人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。
昵称:xerwin
园龄:5年5个月
粉丝:16
关注:1
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

随笔分类(182)

随笔档案(118)

文章档案(2)

相册

友情链接

积分与排名

  • 积分 - 150792
  • 排名 - 617

最新评论

阅读排行榜

评论排行榜

推荐排行榜