perl实现可打印字符加法(ascii:32-126)

#!/usr/bin/perl -w

sub add_32to126{
        my $word = $_[0];
        $last_char_num = ord(substr($word,-1,1))+1;
        if($last_char_num == 127){
                chop($word);
                if($word eq ''){
                        $word .= chr(32);
                }else{
                        if(substr($word,-1,1) eq chr(126)){
                                $word = &add_32to126($word);
                        }else{
                                $word .= chr(ord(chop($word))+1);
                        }
                }
                $word .= chr(32);
                return $word;
        }else{
                $word .= chr(ord(chop($word))+1);
        }
}

$pass = ' ';
while(1){
        print "|$pass|".$/;
        $pass = &add_32to126($pass);
        #sleep (1);
}

可以用来爆破。

输出如:

|!ZS|

|!ZT|

|!ZU|

|!ZV|

|!ZW|

|!ZX|

|!ZY|

|!ZZ|

|!Z[|

|!Z\|

|!Z]|

|!Z^|

|!Z_|

|!Z`|

|!Za|

|!Zb|

|!Zc|

|!Zd|

|!Ze|

|!Zf|

|!Zg|

|!Zh|

|!Zi|

|!Zj|

|!Zk|

|!Zl|

|!Zm|

|!Zn|

|!Zo|

|!Zp|

|!Zq|

|!Zr|

|!Zs|

|!Zt|

|!Zu|

|!Zv|

。。。

时间: 2024-11-03 20:57:59

perl实现可打印字符加法(ascii:32-126)的相关文章

ASCII 可打印字符与控制字符

2017-08-16 21:29:30 基本的 ASCII 字符集共有 128 个字符,其中有 95 个可打印字符,包括常用的字母.数字.标点符号等,另外还有 33 个控制字符.标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准. 控制字符 在ASCII码中,第0-31号及第127号(共33个),换句话说就是小于32的都是控制字符或通讯专用字符,如控制符:LF(换行).CR(回车).FF(换页).DEL(删除).BS(退格).BEL(振铃)等:通讯专

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表)

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表) 关键字:chr() chr()函数作用:"特殊"字符特殊处理 在PLSql中可查询相对应的字码与特殊符 chr()函数示例: select chr(38) from dual;  ascii()函数示例: select ascii('&') from dual;      比如"&"到底为什么在Oracle中成了特殊字符呢?经过查找,终于揭晓了答案:原来&这个字符

perl脚本中对字符编码的支持

# 使perl程序支持utf8宽字符编码,不添加下面几行打印中文字符时将出现Wide character in print警告或错误.use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmode(STDERR, ':encoding(utf8)');perl脚本处理中文等字符时,有时从文件读出的数据为字节码,需要进行解码才能正确显示.使用Encode模块即可处理.use Encode;#

[转]常用字符与ASCII代码对照表

常用字符与ASCII代码对照表 为了便于查询,以下列出ASCII码表:第128-255号为扩展字符(不常用) ASCII码 键盘 ASCII 码 键盘 ASCII 码 键盘 ASCII 码 键盘 27 ESC 32 SPACE 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 ' 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59

Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法

Base64编码是从二进制到字符的过程. Base64编码主要用在传输.存储.表示二进制等领域,还可以用来加密,但是这种加密比较简单. byte[] byteArray = Encoding.UTF8.GetBytes(content);content = Convert.ToBase64String(byteArray); 开发者对 Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了.实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该.大概介绍一下Bas

PHP字符编码ASCII 、GB2312、GBK、UTF-8解释

变量命名规则:1.  变量名区分大小写(case-sensitive) .2.  必须字母或下划线开头.变量名可由 字母.数字.下划线组成.  看 到这里可能,很多人纳闷了~.那为啥  $我是变量    这样的中文也能做变量名呢? 在PHP里,中文的确是可以做变量名的(能用是能用但千万别项目上用....) . 因为这里的字母是指: a-z   A-Z  和  扩展ASCII 字符里从 127 到 255  ,16进制表示为:0x7f-0xff   . 那意思就是ASCII字符里从127到255

1.计算字符的ASCII码

(1)问题:在终端输入一个字符,输出它的ASCII码 (2)分析:一个字符在内存中的存储方式是以它的ASCII码形式存放的,大小为8位:例如:空格符的ASCII码为32,它在内存中32对应的8位二进制数为1000000就代表一个空格. (3)源码: #include "stdio.h" int main(){    char c;    printf("please input a character\n");    scanf("%c",&am

打印字符

描述 输入一个ASCII码,输出对应的字符. 输入一个整数,即字符的ASCII码,保证存在对应的可见字符.输出一行,包含相应的字符.样例输入 65 样例输出 A源代码: #include <stdio.h> int main() { int a; scanf ("%d", &a); printf ("%c\n", a); return 0; }

C# 字符转ASCII码,ASCII码转字符

其实很简单就是使用ASCIIEncoding类相互转化一下,下面我提供两个方法大这看一下吧1.字符转ASCII码 public static int Asc(string character) { if (character.Length == 1) { System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding(); int intAsciiCode = (int)asciiEncoding.GetBytes(