<b>若何获得屏幕保护程序的密码</b>[VC/C++编程]
本文“<b>若何获得屏幕保护程序的密码</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
大家都知道,windows9x只是一个桌面操作系统,它的安定性和保密性一向受大家的批判.目前,我就通过介绍提取windows98的屏幕保护程序的密码的算法来阐明windows98的保密性是怎样的差!
1、屏幕保护程序(以下简称屏保)密码的加密算法
普通,评价一个加密算法,就要看密钥怎么产生,加密算法能否强盛.windows98的屏保密码的明文是有限制的,它的长度最大为128个字符,它的字符集是字母表,数字,和一些标点标记,也就是可视的ascii字符集.windows98密码密文的长度是明文长度的两倍,它保存在注册表子键的hkey_current_user\control panel\desktop的一个名为screensave_data的二进制值里.
加密算法:
首先,windows98把密码明文中小写字母全转换为大写字母,其他字符不变.然后,windows98按次序把明文的每一个ascii值与对应的一个8bits的密钥举行异或(xor),这样会得到与明文一样长度的数值串,把这些每一个数值转换为十六进制,再把这些十六进制的数值转换为字符串,按次序衔接起来,就成为一个两倍长度于明文的密文.密钥老是固定的,共有128bytes. 最后,算法把这个密文字符串以十六进制ascii码值的情势加上00h为完毕标志保存在注册表里.
下面通过例子阐明这个算法:
比方:屏幕保护程序的密码是visual basic,转换成大写是visual basic.呼应的十六进制ascii码值是: 密码明文 v i s u a l space b a s i c ascii值 56 49 53 55 41 4c 20 42 41 53 49 43 密钥 48 ee 76 1d 67 69 a1 1b 7a 8c 47 f8 xor 1e a7 25 48 26 25 81 59 3b df 0e bb 把异或后的后果(十六进制值)当作字符串(数值abcdef以大写表示):1ea72523262581593bdf0ebb.共二十四个字符,把字符再以十六进制值ascii码值表示为: 字符 1 e a 7 2 5 4 8 2 6 2 5 16进制数 31 45 41 37 32 35 34 38 32 36 32 35 字符 8 1 5 9 3 b d f 0 e b b 16进制数 38 31 35 39 33 42 44 46 30 45 42 42 而注册表里screensave_data的值为 "screensave_data"=hex:31,45,41,37,32,35,34,38,32,36,32,35,38,31,35,39,33,42, 44,46,30,45,42,42,00 l 获得密钥 windows98的屏保密码的密钥共有128bytes,怎样才能知道全部的密钥呢?其实很简单,加密算法已知道,想知道密钥并不艰难.像我在前面解析屏保密码那样做,设一个128bytes长的屏保密码(千万要记着哦*o*).然后,取出加密后的密文,共256bytes,把这256个ascii码数值表示为字符,按两个一对再合成一个十六进制的数值,共128个.你目前只要用计算器,一一把明文的ascii码值(记得把小写字母转换成大写字母)与方才所得的128个数值举行异或,你便可以得到全部128个密钥了.下面是我测出来的128 bytes 密钥: 密钥:48,ee,76,1d,67,69,a1,1b, 7a,8c,47,f8,54,95,97,5f, 78,d9,da,6c,59,d7,6b,35, c5,77,85,18,2a,0e,52,ff, 00,e3,1b,71,8d,34,63,eb, 91,c3,24,0f,b7,c2,f8,e3, b6,54,4c,35,54,e7,c9,49, 28,a3,85,11,0b,2c,68,fb, ee,7d,f6,6c,e3,9c,2d,e4, 72,c3,bb,85,1a,12,3c,32, e3,6b,4f,4d,f4,a9,24,c8, fa,78,ad,23,a1,e4,6d,9a, 04,ce,2b,c5,b6,c5,ef,93, 5c,a8,85,2b,41,37,72,fa, 57,45,41,a1,20,4f,80,b3, d5,23,02,64,3f,6c,f1,0f.
2、 程序实现提取屏保密码
知道了屏保密码得奥秘,我们可以用vb6写一个程序来提取程序的密码.由于篇幅的关系,程序代码不便列出.
3、 屏幕保护程序
很多讲vb的书城市教大家怎样写屏幕保护程序,无非是windwos98怎样调用屏保,怎样呼应键盘、鼠标的事件,怎样设置屏保启动参数,怎样屏蔽alt+ctrl+del的热启动,怎样令屏保always on top等.但很少书介绍屏保密码的呼应.其实也很简单,只要你在鼠标和键盘的呼应事件里加上密码的确认便可以了. 在注册表子键的hkey_current_user\control panel\desktop里还有几个有关屏保的参数,字符串 "screensavetimeout"="840" 是屏保的等候时间,字符串”screensaveactive"="1" 能否启动屏幕保护程序的标志,“1”为是,“0”为否dword值"screensaveusepassword"=dword:00000001 是屏幕保护程序能否用密码保护,00000001为是,00000000为否.你可以按照screensaveusepassword的值来确认能否利用密码保护你的屏保.
4、警告
大家利用密码时一定要当心,尽大概不要利用相同的密码.假如你用银行存折的密码来设置屏保的密码,那别人来取你的密码是多么简单的事情!这篇文章只是给大家介绍屏保的加密算法,但愿大家有所收获!
以上是“<b>若何获得屏幕保护程序的密码</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |