24小时热门版块排行榜    

查看: 290  |  回复: 1
当前主题已经存档。

miRNA

至尊木虫 (职业作家)

水王之王(愚愚学园管理员)

[交流] 简单语言打造不简单的工具

学计算机程序的朋友最大的愿望就是能编出一款功能强大的程序,但实现起来却不容易,需要花很多时间来学习计算机语言,今天我就给大家介绍一个好用编程语言Practical Extraction and Report Language(perl),严格的说它只是个脚本语言,Perl象C一样强大,象awk、sed等脚本描述语言一样方便。如果你用的是unix环境那你一定对perl很熟悉了,今天我要谈的是在windows下用perl来打造一个自己满意的程序,如果你学过c语言的话,那你上手一定很快,因为他很c语言很相似,如果你没学过程序也没关系,因为perl的随意,会让你感觉写程序是那样的简单,是不是动心了?Let's go.

程序实现目的:
1.MD5密码破解
2.用BASE64编码解码功能实现文本加密
编程使用语言:perl
编程环境:Windows 2000 + ActivePerl 5.8.0 Build 806

首先,我们要安装ActivePerl 5.8.0 下载地址:http://downloads.activestate.com ... 806-MSWin32-x86.msi
下载好了以后根据提示安装,我在这里就不详细介绍了。
第一个功能的实现:
MD5密码破解,有人就疑问了,用这个加密的密码是不可以破解的啊,怎么破解呢?呵呵,既然不可逆那我们就顺着来啊,思路:将明文密码用MD5算法加密,然后和需要破解的MD5密码对比。正好perl中也提供了MD5的加密功能,仔细查看帮助文档我们会发现有MD2、MD4、MD5,我们今天要实现的是MD5的破解,其他的我们不管了,MD5加密也是现在最流行的,很多BBS的数据库密码都使用它来加密。
#MD5 password crack
#write by fengze
#usr/bin/perl! -w
use Digest::MD5 qw(md5_hex); #载入MD5模块
print "Please input MD5 password:"; #输出提示到屏幕,提示用户输入一个MD5加密的密码
$MD5=; #等待键盘上输入数据赋值给$MD5
chop($MD5); #把最后一个字符删除,也就是删除输入时的回车
$pwd=lc($MD5); #将密码转换成小写(perl中生成的MD5密码都是小写 的)
print "Please input password dictionary:"; #输出提示到屏幕,提示输入密码字典的名字
$file=; #等待键盘上输入数据赋值给$file
chop($file); #把最后一个字符删除
open(FILE,"$file"||die "Can't open password dictionary"; #打开字典文件
while(@pass={ #从字典文件中读取密码放到pass数组 foreach $passwd(@pass){ #循环读取pass数组中的密码
chop($passwd); #把最后一个字符删除(这个很重要)
$md5pass=md5_hex($passwd); #把从密码字典读取的明文密码加密成MD5密码
if($md5pass eq $pwd){ #将生成的MD5密码和输入的MD5密码比较如果完全匹print "MD5: $md5passwd Password: $passwd\n"; 配则输出MD5密码和明文密码
}
}
}
程序结束,是不是很简单啊,别不相信,可以自己试一下啊。这个程序只能猜解一个密码,如何猜解多个密码呢?相信聪明的你已经想到了吧,我就不多说了。
第二个功能的实现:
用BASE64编码解码功能实现文本加密,这个功能也是直接调用perl提供给我们的模块实现的。
#BASE64 encode and decode TXT files.
#write by fengze
#!usr/bin/perl
use MIME::Base64; #载入MIME::Base64模块
new:print "1.encode\n"; #new是配合goto语句使用的
print "2.decode\n"; #输出提示
print "Please choose: "; #选择加密(encode)或解密(decode)
$a=; #获取值来做判断
chop($a);
if($a<1 || $a>3){goto new;} #如果值不在范围内则返回new
if($a==1){ #加密代码区域
print "Please Input Encode Filename:"; #提示输入要加密的文件名
$file=;
print "Please Input Great Filename:"; #提示加密后生成的文件名
$file1=;
open(H,$file) || die "Can't open $file file"; #打开文件为了读取
open(HI,">>$file1" || die "Can't great file1 file";#打开文件为了写入
binmode(H);
binmode(HI); #将文件用二进制函数处理
while (@str={ #循环读取文件
foreach $string(@str){ #将文件中的字符放到$string中
print HI encode_base64($string); #将$string中的字符加密并输出到文件
}}
close H;
close HI; #关闭文件
}
if($a==2){
print "Please Input Decode Filename:"; #这里我就不做解释了,根据上面的解释相信你
$file=; 应该可以读懂的
print "Please Input Great Filename:";
$file1=;
open (H,$file) || die "Can't open $file";
open (HI,">>$file1" || die "Can't great $file1";
binmode(H);
binmode(HI);
while(@str={
foreach $string(@str){
print HI decode_base64($string); #这里将字符解密并输出到文件
}}
close H;
close HI;
}
好了,自己的工具的2个功能已经实现了,将他们写入一个文件,然后编译后就可以在windows中运行了,编译后的程序有点大,但不需要系统安装perl环境。
perl能实现的东西很多,我以前写的一篇perl网络编程的学习日记放在了自己的小站上了,有兴趣的朋友可以到http://www.safetyie.com/fengze/来查看。由于本人的水平有限,如上程序有不妥之处还望各位斧正。 转

[ Last edited by 幻影无痕 on 2006-10-7 at 09:48 ]
回复此楼
〖愚愚学园〗http://www.scifans.net免费代理|免费期刊|ezproxy|文献检索|学术资源|免费资源
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuefour

金虫 (正式写手)

1

2222222222
2楼2005-06-14 19:15:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 miRNA 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-30 22:24 by xiangy672
[基金申请] 国社科又开始会评了,不知道这次命运如何 +5 雨打竹帘 2026-08-30 9/450 2026-08-30 22:23 by 余韵清
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 面上意见出来了 +9 黄鸟于飞Chao 2026-08-29 18/900 2026-08-30 16:47 by 黄鸟于飞Chao
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
信息提示
请填处理意见