微墨小程序 密码输入密码6-15字节怎么输

2018应用公园开年盛惠—微墨小程序+AppUI界面设计Java安全学习笔记(六)-使用消息摘要验证口令
使用消息摘要验证口令
本实例介绍如何使用所保存的消息摘要验证用户输入的口令是否正确。若账号和口令都与保存在user_pass.txt中的相同,则提示“账号和口令都正确”,否则提示"错误的账号或口令"。不过这代码的逻辑总是有点奇葩哈哈。
使用消息摘要验证口令的技术要点如下:
1.读取文件中对应账号,口令的消息摘要
2.生成用户输入的口令的消息
3.将用户输入的口令的摘要和文件中保存的口令摘要进行对比。
import java.io.BufferedR
import java.io.FileR
import java.security.MessageD
public class Validate_Mess {
public static void main(String[] args) throws Exception {
/* 读取文件中的账号和口令摘要 */
String user = "";
String passwd = "";
BufferedReader in = new BufferedReader(new FileReader("user_pass.txt"));
while ((user = in.readLine()) != null) {// 感觉挺奇葩的逻辑哈哈
passwd = in.readLine();
if (user.equals("msg")) {
/* 生成用户输入的口令摘要 */
MessageDigest md = MessageDigest.getInstance("MD5");
md.update("pass".getBytes("UTF8"));// 模拟用户输入口令 ,同时把原密码口令pass转换成字节数组
byte b[] = md.digest();
String result = "";
for (int i = 0; i & b. i++) {
result += Integer.toHexString((0x000000ff & b[i]) | 0xffffff00).substring(6);
/* 检测口令摘要是否匹配 */
if (user.equals("msg") && result.equals(passwd)) {
System.out.println("账号和口令都正确");
System.out.println("错误的账号或口令");
in.close();
源程序解读
1.因为在user_pass.txt中,第一行保存的是账号,第二行保存的是账号对应的口令的消息摘要,所以以行地形式来读取用户账号对应的口令的消息摘要。
2.MessageDigest通过getInstance("MD5") 方法创建对象
3.MessageDigest的update方法中,传入的参数是字节类型或字节类型数组,对于字符串,需要先使用getBytes()方法生成字符串数组。
4.MessageDigest的digest()方法作用是计算消息摘要,计算的结果通过字节类型数组返回。
5. Integer.toHexString((byteVar & 0x000000FF) | 0xFFFFFF00).substring(6) 作用是为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用:
byteVar & 0x000000FF的作用是,如果byteVar 是负数,则会清除前面24个零,正的byte整型不受影响。(...) | 0xFFFFFF00的作用是,如果byteVar 是正数,则置前24位为1,这样toHexString输出一个小于等于15的byte整型的十六进制时,倒数第二位为零且不会被丢弃,这样可以通过substring方法进行截取最后两位即可(一个字节从下标第6第7的位置的元素)。
6.最后比较用户输入的口令的消息摘要和文件中保存的口令摘要是否一致,当账号和口令摘要都与文件中保存一致时,则验证通过。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!数字密码锁设计 如下图A、B、C、D 代表四位密码输入(密码由同学自己设定),E 为开锁控制输入_百度知道
数字密码锁设计 如下图A、B、C、D 代表四位密码输入(密码由同学自己设定),E 为开锁控制输入
数字密码锁设计
如下图A、B、C、D 代表四位密码输入(密码由同学自己设定),E 为开锁控制输入端。如果输入密码符合所设定的密码,并有开锁信号(即E=1),锁才能被打开(即 F=1);如果密码不符,开锁时,锁打不开且电路将报警(A=1)。无开锁信号时(E=0)...
我有更好的答案
电子密码锁概述
随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。1.2
本设计主要任务(1)共8位密码,每位的取值范围为1~8。(2)用户可以自行设定和修改密码。(3)按每个密码键时都有声、光提示。(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。(7)密码键盘上只允许有8个密码按键和1个发光管。锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。(8)密码设定完毕后要有2秒的提示音。
以上是初步设定的电子密码锁的主要功能。1.3
系统主要功能
本系统主要由单片机系统、键盘、报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。第1节
电子密码锁硬件设计2.1
系统的硬件构成及功能根据总体要求分析,该密码锁电路所需要的I/O口线少于15个,所以可选择质优价廉的AT89C2051,而且不需要外接程序存储器和数据存储器及其它扩展部件。电子密码锁由电路和机械两部分组成,此次设计的电子密码锁可以完成密码的修改、设定及非法入侵报警、驱动外围电路等功能。从硬件上看,它由六部分组成,分别是:LED显示器,显示亮度均匀,显示管各段不随显示数据的变化而变化,且价格低廉,它用于显示键盘输入的相应信息;无须再加外部EPROM存储器,且外围扩展器件较少的AT89C52单片机是整个电路的核心部分;振荡电路为CPU产生赖以工作的时序;显示灯是通过CPU输出的一个高电平,通过三极管放大,驱动继电器吸合,使外加电压与发光二极管导通,从而使发光二极管发光,电机工作。现在来进行修改密码操作。修改密码实质就是输入的新密码去取代原来的旧密码。密码的存储用来存储一位地址加1,密码位数减1,当八个地址均存入一位密码,即密码位数减为零时,密码输入完毕,此时按下确认键,新密码产生,跳出子程序。为防止非管理员任意的进行密码修改,必须输入正确密码后,按修改密码键,才能重新设置密码。密码输入值的比较主要有两部分,密码位数与内容任何一个条件不满足,都将会产生出错信息。当连续三次输入密码出错时,就会出现报警信息,LED显示出错信息,蜂鸣器鸣叫,提醒人注意。在电路中,P1口连接8个密码按键AN1~AN8,开锁脉冲由P3.5输出,报警和提示音由P3.7输出。BL是用于报警与声音提示的喇叭,发光管D1用于报警和提示,L是电磁锁的电磁线圈。
电子密码锁硬件电路图2.2.1AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器, AT89C2051是一个有20个引脚的芯片,引脚配置如图2所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。 图2
AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC
电源电压。GND
复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复至“1”。XTAL1
反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2
来自反向振荡放大器的输出。P1口
8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口
引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,功P3口同时也可为闪速存储器编程和编程校验接收控制信号。P3口特殊功能P3口引脚 特殊功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)第3节
系统的软件设计图3给出了该单片机密码锁电路的软件流程图。图中AA1~AA8以及START、SET、SAVE是程序中的标号,是为了理解程序而专门标在流程图的对应位置的,分析程序时可以仔细对照参考。3.1
系统主程序设计流程图(见附页)3.2
软件设计思想
软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能(如计算、显示、输出控制和通信等);另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色;执行软件的设计偏重算法效率,与硬件关系密切,千变万化;监控软件着眼全局,主要处理人机关系,特点是逻辑严密、千头万绪。本设计要完成的软件任务主要有:一是键盘输入的识别;二是8位LED的显示;三是密码的比较、修改、存储;;四是报警和开锁控制电平的输出。
根据以上任务,结合硬件结构,可以将键盘输入的识别用来作为系统的监控程序(主程序),用显示程序来延时,不断查询键盘。如果有键按下,就得到相应的键值。结合当前系统所处的状态,调用不同的操作模块,实现相应的功能。而执行模块主要有数字输入模块、确定键模块、修改键模块、显示模块及报警模块。3.3
存储单元的分配该密码锁中RAM存储单元的分配方案如下:31H~38H:依次存放8位设定的密码,首位密码存放在31H单元;R0:指向密码地址;R2:已经键入密码的位数;R3:存放允许的错码次数3与实际错码次数的差值;R4至R7:延时用;00H:错码标志位。对于ROM存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从0030H单元(其它地址也可以)开始存放主程序。3.4
系统源程序ORG
0030HSTART:ACALL BP MOV:R0,#31HMOV:R2,#8SET:MOV:P1,#0FFHMOV:A,P1 CJNE:A,#0FFH,L8AJMP SET L8: ACALL DELAYCJNE A,#0FFH,SAVEAJMP SET SAVE:ACALL BPMOV @R0,A INC R0 DJNZ R2,SET MOV R5,#16 D2S:ACALL BPDJNZ R5,D2SMOV R0,#31HMOV R3,#3 AA1:MOV R2,#8AA2:MOV P1,#0FFH MOV A,P1CJNE A,#0FFH,L9AJMP AA2L9:ACALL DELAYCJNE A,#0FFH,AA3 AJMP AA2AA3 ACALL BPCLR CSUBB A,@R0INC R0
CJNE A,#00H,AA4 AJMP AA5 AA4:SETB 00H AA5:DJNZ R2,AA2JB 00H,AA6CLR P3.5L3:MOV R5,#8 ACALL BP DJNZ R4,L3 MOV R3,#3 SETB P3.5 AJMP AA1 AA6:DJNZ R3,AA7 MOV R5,#24 L5:MOV R4,#200L4:ACALL BP DJNZ R4,L4 DJNZ R5,L5 MOV R3,#3AA7:MOV R5,#40 ACALL BP DJNZ R5,AA7 AA8:CLR 00H AJMP AA1 BP:CLR P3.7 MOV R7,#250 L2:MOV R6,#124 L1:DJNZ R6,L1 CPL P3.7 DJNZ R7,L2SETB RET DELAY MOV R7,#20 L7:MOV R6,#125 L6:DJNZ R6,L6DJNZ R7,L7RETEND3.5
应用说明若按键AN1~AN7分别代表数码1~7,按键AN0代表数码8。在没有键按下时,P1.0~P1.7全是高电平1,若某个键被按下,相应的口线就变为低电平0。假如设定的密码是,当按键AN6被按下时,P1.6变为低电平,P1端口其余口线为高电平,此时从P1端口读入的数值为,存到31H单元的密码值就是,也就是BFH。依此类推,存到32H至38H单元的密码值分别是FDH、FBH、F7H、EFH、DFH、7FH、FEH。开锁时必须先按AN6,使从P1口读入的第一个密码值与31H单元存储的设定值相同,再顺序按AN1、AN2、AN3、AN4、AN5、AN7、AN0才能开锁。否则不能开锁,同时开始报警。3.6
该电子密码锁能充分利用了51系统单片机软、硬件资源,引入了智能化分析功能,提高了系统的可靠性和安全性,另外,电子密码锁若与串行通信结合在一起将会成为宾馆、工厂、学校等需要进行统一管理的建筑群不可缺的商品。 机电一体化的电子密码锁,其功能大大超过弹子锁,且性能更稳定、更安全。其特点,首先保密性好,其次编码可变;其三误码输入保护;其四停电不掉码;其五多种密码开锁方式,使用方便,没有单人开锁、二三人多种开锁方式。由于自身的优势,电子密码锁会受到越来越多人们的欢迎,使用会越来越广泛,同时,也将会被社会所接受认可,并与弹子锁平分秋色。这样可以么?
采纳率:74%
为您推荐:
其他类似问题
密码锁的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。山西小程序多少钱招商_【网中网科技】_山西微信小程序制作海报
您所在的位置:
&&&&&& & 正文
山西小程序多少钱招商
&&&&& 23:03:55&&&&&&&&&&&&&&
山西小程序多少钱招商,,山东小程序开发文档下载,山东小程序开发banner,山东小程序代理靠谱吗,山东微信小程序开发详解小坤,山东微信小程序开发版代码
  嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
  嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
  嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
  嘉兴在线讯 6月7日,大桥镇亚欧社区开展环境整治百日提升行动,辖区内的党员志愿者、居民志愿者、社区工作人员和各物业的保洁人员共同行动,整治辖区内的卫生死角,消除辖区内蚊蝇滋生的场所,为创建南湖区食品安全区出一份力。辖区内很多地方还处于在建状态,乱丢弃现象还十分严重,尤其是很多食品的垃圾包装,随着夏季的来临,温度的升高,会引来更多的蚊蝇,南湖区正在创建食品安全区,蚊蝇的增多自然会给辖区内的食品带来污染的隐患。清楚死角垃圾,让蚊蝇无处安家,让大家拥有一个干净的环境,留一份清爽给夏季,最重要的是减少蚊蝇带来的疾病传播。随着环境整治行动的不断深入,亚欧社区辖区内的卫生问题不断被发现、被整治,通过一次次行动,垃圾更少了,环境更美了,居民笑容更灿烂了。
  编辑:刘喆 校对:陆爱英
来源:嘉兴在线—嘉兴日报&&&&编辑:&&&&责任编辑:总有人在忙忙碌碌寻宝藏
CTF中Crypty(密码类)入门必看
ASCII码大致可以分为三部分组成:
第一部分是:ASCII非打印控制字符
第二部分是:ASCII打印字符;
第三部分是:扩展ASCII打印字符。
这是ASCII码表
具体分析链接
base64,32,16,编码
这里我们拿常见的base64来举例
原理:base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应4个base64单元,即3个字节可表示4个可打印字符。它可用来作为电子邮件的传输编码。在base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同系统中而不同。
例如:编码‘Man'
在此例中,base64算法将3个字符编码转为4个字符
base64索引表:
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个“=”号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号
关于base32:base32中只有大写字母(A-Z)和数字234567
关于base16:
base16中只有数字0-9以及大写字母ABCDEF
Quoted-printable编码解码
在所有邮件处理的各式各样的编码中,很多编码的目的都是通过编码的手段使得七位字符的邮件协议体系可以传送八位的二进制文件、双字节语言等等。Quoted-Printable也是这样一些编码中的一个,它的目的同样是帮助非ASCII编码的信件传输通过SMTP。Quoted-Printable编码是字符对应的编码,每个末编码的二进制字符被编码成三个字符,即一个等号和一个十六进制的数字,如‘=AB’。
编码原理和综述参考
编码解码链接
XXencode编码
原理:XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部分用零补齐。这三个字节共有24个bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0-63之间。以所对应值的位置字符代替。它所选择的可打印字符是:+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,一共64个字符。跟base64打印字符相比,就是uuencode多一个‘-’字符,少一个‘/’字符。但是,它里面字符顺序与base64完全不一样。
原文本:The quick brown fox
jumps over the lazy dog
编码后:hJ4VZ653pOKBf647mPrRi64NjS0-eRKpkQm-jRaJm65FcNG-gMLdt64FjNkc+
具体原理与算法
UUencode编码
原理:Uuencode将输入资料以每三个字节为单位进行编码,如此重复进行。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6-bit为单位分为4个群组,每个群组以十进制来表示所出现的数值只会落在0到63之间。将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。每60个编码输出(相当于45个输入字节)将输出为独立的一行,每行的开头会加上长度字符,除了最后一行之外,长度字符都应该是’M'这个ASCII字符(77=32+45),最后一行的长度字符为32+剩下的字节数目这个ASCII字符。如果是一个
0字节那它应该被转换为0×60而不是0×20,因为(前引用’`')优于 0×20(空格’ ‘)。
原文本:You had me at hello
编码后:366]U(&AA9"!M92!A="!H96QL;P``
具体原理与算法
Unicode编码
原文本:You had me at hello
编码后:\uf\u\u\u\u006d\u\u\u\uc\u006c\u006f
Escape/Unescape编码
编码介绍:Escape/Unescape加密解码/编码解码,又叫%u编码,从以往经验看编码字符串出现有"u",它是unicode编码,那么Escape编码采用是那一种unicode实现形式呢。其实是UTF-16BE模式。这样一来问题非常简单了。 Escape编码/加密,就是字符对应UTF-16
16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!因为目前%字符,常用作URL编码,所以%u这样编码已经逐渐被废弃了!
HTML实体编码
摩尔斯电码(摩斯密码)
摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人艾尔菲德·维尔(Alfred Lewis Vail)与萨缪尔·摩尔斯(Samuel Finley Breese Morse)在1836年发明。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种:
3.每个字符间短的停顿(在点和划之间的停顿)
4.每个词之间中等的停顿
5.以及句子之间长的停顿
摩尔斯电码字母与数字对应表:
原文本:I LOVE YOU TOO
加密后:../.-../---/...-/./-.--/---/..-/-/---/---
md5加密解密
注意:md5的值范围在0-9,a-f
推荐几个好用的md5在线加密解密链接
在md5格式正确的情况下,一个网站解不出来,可以换另一个试试!
加密可以将正常文本内容打乱为不可连读的文字或符号(汉字 数字 字母 音乐符号 国际音标 盲文 韩文 日文 傣文 彝文 箭头符号 花朵符号
俄文),换行等格式信息也会被清除,达到加密的作用。在进行文本加密时可以设定一个密码,这样只有知道密码的人才能解密文本。密码可以是数字、字母和下划线,最多九位。
明文:The quick brown fox jumps over the lazy dog
去空格:Thequickbrownfoxjumpsoverthelazydog
分组:Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g
第一组:Teucbonojmsvrhlzdg
第二组:hqikrwfxupoeteayo
密文:Teucbonojmsvrhlzdghqikrwfxupoeteayo
曲路密码(Curve Cipher)是一种换位密码,需要事先双方约定密钥(也就是曲路路径)。
明文:The quick brown fox jumps over the lazy dog
填入5行7列表(事先约定填充的行列数)
密文:gesfc inpho dtmwu qoury zejre hbxva lookT
列移位密码
列移位密码(Columnar Transposition Cipher)是一种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文。下面我们以明文 The quick brown fox jumps over the lazy dog,密钥 how are u为例:
填入5行7列表(事先约定填充的行列数,如果明文不能填充完表格可以约定使用某个字母进行填充)
密钥:how are u
按how are u在字母表中的出现的先后顺序进行编号,我们就有a为1,e为2,h为3,o为4,r为5,u为6,w为7,所以先写出a列,其次e列,以此类推写出的结果便是密文:
密文:qoury inpho Tkool hbxva uwmtd cfseg erjez
凯撒密码(Caesar Cipher或称恺撒加密、恺撒变换、变换加密、位移加密)是一种替换加密,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推,更多
加密实例:
明文:The quick brown fox jumps over the lazy dog
密文:Uif rvjdl cspxo gpy kvnqt pwfs uif mbaz eph
加密解密(这个网站可以将26种情况一次性列举出来,比较方便)
加密解密脚本(这个脚本把ASCII中可打印字符的所有可能都输出)
ROT5/13/18/47
oivqmqgn, yja vibem naarn yi yxbo sqnyab yjqo q zixuea is gaqbn qdi. ykra jqn zira yi baseazy yjqy qeni ko yja ujbqzw rqdqhkoa. yjkn kn vjqy yja uquab saam kn qpixy: gix nxprky q uquab, va backav ky qom ky dayn uxpeknjam. oi oaam yi vqky q rioyj ib yvi xoyke gix naa gixb qbykzea ko yja oafy ujbqzw knnxa, vjao yja ykra jqn zira, va'ee mazkma yi zirukea q oav knnxa sbir yja qbykzean yjqy jqca paao nxprkyyam. yjqy'n pqnkzqeeg ky. qom dbqp gix seqd jaba, zbguyiiiniziieqrkbkdjy?先用链接1
接下来就可以从频率上对密文进行分析了。根据右侧的频率统计,我们可以尝试对前面四个字母进行替换,在左侧的矩形文本框中,在密文对应字符的上面可以填写解密后的明文,因此,这里得到的密文到明文的映射为:A-e, Y-t, Q-a, I-o
在英文单词构词方面,以密文第二个单词YJA为例,经过分析后我们得到的结果为t*e,而字符J在密文中的频率为5.9,对应英文文本中可能的字符为i n s h r,经过分析,只有the才是有意义的单词,因此我们可以猜测密文J对应明文h。v=w(经过这样不断的分析,我们最终就能还原出明文了)
再使用链接3
破解出来了!
使用工具(工具)
decrypt.py是解密脚本,encrypted.py是加密脚本,encrypted.txt是加密的密文,decrypted.txt里面是解密出来的明文
圣堂武士密码(Templar Cipher)是共济会的“猪圈密码”的一个变种,一直被共济会圣殿骑士用。
明文字母和对应密文:
波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便是字母的坐标。更多
常见的排布方式:
加密实例:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
夏多密码(曲折加密)
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOGCULTURE
&&&from pycipher import Playfair
&&&Playfair('CULTREABDFGHIKMNOPQSVWXYZ').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'UKDNLHTGFLWUSEPWHLISNPCGCRGAUBVZAQIV'
&&&Playfair('CULTREABDFGHIKMNOPQSVWXYZ').decipher('UKDNLHTGFLWUSEPWHLISNPCGCRGAUBVZAQIV')
'THEQUICKBROWNFOXIUMPSOVERTHELAZYDOGX'
维吉尼亚密码
&&&from pycipher import Vigenere
&&&Vigenere('CULTURE').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK'
&&&Vigenere('CULTURE').decipher('VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK')
'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'
(3)未知密钥破解
可以参考这篇文章,破解维吉尼亚密码第一步是确定密钥长度,维吉尼亚密码分析这篇文章里介绍了使用来确定密钥长度,在确定密钥长度后就可以尝试确定密钥,通常我们可以使用来找到每个字母的偏移量,基于维吉尼亚密码分析一文中的算法实现的工具破解示例。
密文:kiqpbkxspshwehospzqhoinlgapp
(ps:结合左边的值,密钥以及解出明文可以确定kien 5或者klen 10为准确的结果)
明文:DEFEND THE EAST WALL OF THE CASTLE
有几种密码和维吉尼亚密码相似,格罗斯费尔德密码(Gronsfeld cipher)实际上和维吉尼亚密码相同,除了使用了数字来代替字母以外没有什么区别。数字可以选择一种数列,如斐波那契数列,或者一些其他的伪随机序列。格罗斯费尔德密码密码分析过程和维吉尼亚密码大同小异,不过,自动密钥密码不能使用卡西斯基算法(kasiski)来破译,因为自动密钥密码的密钥不重复循环使用,破译自动密钥密码最好的方法的就是从密文不断尝试和猜测其中明文或密钥的一部分。
&&&from pycipher import Gronsfeld
&&&Gronsfeld([2,20,11,45,20,43,4]).encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK'
&&&Gronsfeld([2,20,11,45,20,43,4]).decipher('VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK')
'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'
在线加解密
自动密钥密码
自动密钥密码(Autokey Cipher)是多表替换密码,与维吉尼亚密码密切相关,但使用不同的方法生成密钥,通常来说要比维吉尼亚密码更安全。自动密钥密码主要有两种,关键词自动密钥密码和原文自动密钥密码.下面我们以关键词自动密钥为例:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
关键词:CULTURE
自动生成密钥:CULTURE THE QUICK BROWN FOX JUMPS OVER THE
接下来的加密过程和维吉尼亚密码类似,从密表可得:
密文:VBP JOZGD IVEQV HYY AIICX CSNL FWW ZVDP WVK
(2)已知关键词加解密
&&&from pycipher import Autokey
&&&Autokey('CULTURE').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'VBPJOZGDIVEQVHYYAIICXCSNLFWWZVDPWVK'
&&&Autokey('CULTURE').decipher('VBPJOZGDIVEQVHYYAIICXCSNLFWWZVDPWVK')
'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'
在线加解密
(3)未知关键字破解
推荐去看这篇文章,基于文中的算法实现的工具来破解示例。
密文:isjiqymdebvuzrvwhmvysibugzhyinmiyeiklcvioimbninyksmmnjmgalvimlhspjxmgfiraqlhjcpvolqmnyynhpdetoxemgnoxl
(ps:从klen 13可以看出使用的关键词为’FORTIFICATION’)
明文:DESPITEBEINGMORESECURETHANTHEVIGENERECIPHERTHEAUTOKEYCIPHERISSTILLVERYEASYTOBREAKUSINGAUTOMATEDMETHODS
将明文转换成可读句子:
despite being more secure than the vigenere cipher the autokey cipher is still very easy to break using automated methods
博福特密码
博福特密码(Beaufort Cipher),是一种类似于维吉尼亚密码的代换密码,由弗朗西斯·蒲福(Francis Beaufort)发明。它最知名的应用是Hagelin M-209密码机。博福特密码属于对等加密,即加密演算法与解密演算法相同。
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密钥(循环使用,密钥越长相对破解难度越大):CULTURE
加密过程:如果第一行为明文字母,第一列为密文字母,那么沿明文字母’T’列出现密钥字母’C’的行号就是密文字母’J’,以此类推。
密文:JNH DAJCS TUFYE ZOX CZICM OZHC BKA RUMV RDY
(2)已知密钥加解密
&&&from pycipher import Beaufort
&&&Beaufort('CULTURE').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'JNHDAJCSTUFYEZOXCZICMOZHCBKARUMVRDY'
&&&Beaufort('CULTURE').decipher('JNHDAJCSTUFYEZOXCZICMOZHCBKARUMVRDY')
'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'
滚动密钥密码
滚动密钥密码(Running Key Cipher)和维吉尼亚密码有着相同的加密机制,区别是密钥的选取,维吉尼亚使用的密钥简短,而且重复循环使用,与之相反,滚动密钥密码使用很长的密钥,比如引用一本书作为密钥。这样做的目的是不重复循环使用密钥,使密文更难破译,尽管如此,滚动密钥密码还是可以被攻破,因为有关于密钥和明文的统计分析模式可供利用,如果滚动密钥密码使用统计上的随机密钥来源,那么理论上是不可破译的,因为任何可能都可以成为密钥,并且所有的可能性都是相等的。
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密钥:选取C语言编程(1978版)第63页第1行”errors can occur in several places. A label has…”,去掉非字母部分作为密钥(实际选取的密钥很长,长度至少不小于明文长度)。加密过程:加密过程和维吉尼亚密码加密过程相同密文:XYV ELAEK OFQYH WWK BYHTJ OGTC TJI DAK YESR已知密钥在线加解密
Porta密码(Porta Cipher)是一个由意大利那不勒斯的医生Giovanni Battista della Porta发明的多表代换密码,Porta密码具有加密解密过程的是相同的特点。
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密钥(循环使用,密钥越长相对破解难度越大):CULTURE
加密过程:明文字母’T’列与密钥字母’C’行交点就是密文字母’F’,以此类推。
密文:FRW HKQRY YMFMF UAA OLWHD ALWI JPT ZXHC NGV
已知密钥在线加解密
Porta密码可以被以破解相类似方式进行自动攻破,破解Porta密码第一步是先确定密钥长度,这里推荐一篇关于使用确定为维吉尼亚密钥长度。同音替换密码
同音替换密码(Homophonic Substitution Cipher)是单字母可以被其他几种密文字母同时替换的密码,通常要比标准替换密码破解更加困难,破解标准替换密码最简单的方法就是分析字母出现频率,通常在英语中字母’E'(或’T’)出现的频率是最高的,如果我们允许字母’E’可以同时被3种不同字符代替,那么就不能还是以普通字母的频率来分析破解,如果允许可代替字符越多,那么密文就会更难破译。
常见代换规则表:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文(其中一种):6CZ KOVST XJ0MA EQY IOGL4 0W1J UC7 P9NB F0H
如果同音替换密码的同音词个数很多,那么破解它难度很大,通常的方法采取类似破解替换密码的”爬山算法”,除了找到一个明文字母映射几个字符之外,我们还需要确定映射了那些字符,可以尝试2层嵌套”爬山算法”来破解,外层确定映射的数量,内层确定映射字符
仿射密码(Affine Cipher)是一种单表代换密码,字母表中的每个字母相应的值使用一个简单的数学函数映射到对应的数值,再把对应数值转换成字母。这个公式意味着每个字母加密都会返回一个相同的字母,意义着这种加密方式本质上是一种标准替代密码。因此,它具有所有替代密码的弱点。每一个字母都是通过函数(ax + b)mod m加密,其中B是位移量,为了保证仿射密码的可逆性,a和m需要满足gcd(a , m)=1,一般m为设置为26。更多
常见的字母对应关系:
培根密码(Baconian Cipher)是一种替换密码,每个明文字母被一个由5字符组成的序列替换,最初的加密方式就是由’A’和’B’组成序列替换明文(所以你当然也可以用别的字母),比如字母’D’替换成”aaabb”,以下是全部的对应关系(另一种对于关系是每个字母都有唯一对应序列,I和J与U/V各自都有不同对应序列):
I/J = abaaa
U/V = baabb
明文:T H E F O X
密文:baaba aabbb aabaa aabab abbab babab
--------------------------------------------------------------------------
ADFGX密码(ADFGX Cipher)是结合了改良过的Polybius方格替代密码与单行换位密码的矩阵加密密码,使用了5个合理的密文字母:A,D,F,G,X,这些字母之所以这样选择是因为当转译成摩尔斯电码(ADFGX密码是德国军队在一战发明使用的密码)不易混淆,目的是尽可能减少转译过程的操作错误。
加密矩阵示例:
----------------
明文:THE QUICK BROWN FOX
结果矩阵加密:
AF XD XG GA FG
XA FX DX GX DG
列移位密钥:how are u
密文:DXADF AGXF XFFXD FXGGX DGFG AADA ADXXF
已知密钥加解密:
&&&from pycipher import ADFGX
&&&a = ADFGX('phqgmeaynofdxkrcvszwbutil','HOWAREU')
&&&a.encipher('THE QUICK BROWN FOX')
'DXADFAGXFXFFXDFXGGXDGFGAADAADXXF'
&&&a.decipher('DXADFAGXFXFFXDFXGGXDGFGAADAADXXF')
'THEQUICKBROWNFOX'
(2)ADFGVX密码
ADFGVX密码实际上就是ADFGX密码的扩充升级版,一样具有ADFGX密码相同的特点,加密过程也类似,不同的是密文字母增加了V,使得可以再使用10数字来替换明文。
A D F G V X
-------------
A | p h 0 q g 6
D | 4 m e a 1 y
F | l 2 n o f d
G | x k r 3 c v
V | s 5 z w 7 b
X | j 9 u t i 8
由于两种加密过程完全类似这里就不再重复给出加密过程。
&&&from pycipher import ADFGVX
&&&a = ADFGVX('ph0qg64mea1yl2nofdxkr3cvs5zw7bj9uti8','HOWAREU')
&&&a.encipher('THE QUICK BROWN FOX')
'DXXFAFGFFXGGGFGXDVGDVGFAVFVAFVGG'
&&&a.decipher('DXXFAFGFFXGGGFGXDVGDVGFAVFVAFVGG')
'THEQUICKBROWNFOX'
双密码(Bifid Cipher)结合了波利比奥斯方阵换位密码,并采用分级实现扩散,这里的“双”是指用2个密钥进行加密。双密码是由法国Felix Delastelle发明,除此之外Felix Delastelle还发明了三分密码(Trifid Cipher),四方密码(Four-Square Cipher)。还有一个与四方密码类似,Conjugated
Matrix Bifid Cipher)也是双密码的变种。
1| p h q g m
2| e a y l n
3| o f d x k
4| r c v s z
5| w b u t i/j
明文:THE QUICK BROWN FOX
经过密阵转换:
在经过密阵转换后密文:WETED TKZNE KYOME X
(2)已知密阵加解密
&&&from pycipher import
&&&Bifid('phqgmeaylnofdxkrcvszwbuti',5).encipher('THE QUICK BROWN FOX')
'WETEDTKZNEKYOMEX'
&&&Bifid('phqgmeaylnofdxkrcvszwbuti',5).decipher('WETEDTKZNEKYOMEX')
'THEQUICKBROWNFOX'
(3)未知密阵加解密
手工分析破解双密码是有一定难度的,每个字母都是同过3个数字进行非线性代替转换,而且之后还会对字母顺序进行打乱,这样使双密码比一些替换密码和换位密码更难破解。然而,现在是计算机时代,这张加密方式没有安全性可言,通过就能快速找到双密码的密阵。
这里推荐一篇详细的的文章,基于模拟退火算法实现的工具破解示例:
密文:KWTAZQLAWWZCPONIVBTTBVQUZUGRNHAYIYGIAAYURCUQLDFTYVHTNQEENUPAIFCUNQTNGITEFUSHFDWHRIFSVTBISYDHHASQSROMUEVPQHHCCRBYTQBHWYRRHTEPEKHOBFSZUQBTSYRSQUDCSAOVUUGXOAUYWHPGAYHDNKEZPFKKWRIEHDWPEIOTBKESYETPBPOGTHQSPUMDOVUEQAUPCPFCQHRPHSOPQRSSLPEVWNIQDIOTSQESDHURIEREN
得到加密矩阵:
明文:CRYPTANALYS IS OF BIFID BY HAND IS ACTUALLY FAIRLY DIFFICULT THE FRACTIONATING NATURE OF THE CIPHER IE EACH LETTER IS SUBSTITUTED BY CHARACTERS THEN THESE CHARACTERS ARE IUM BLED WHICH WILL PULL THEM APART MAKES THE CIPHER
MUCH STRONGER THAN SUBSTITUTION CIPHERS OR TRANSPOSITION CIPHER SON THEIR OWN
三分密码(Trifid Cipher)结合换位和替换,三分密码与双密码非常相似,差别之处就是用除了3×3×3的密阵代替5×5密阵。
密阵顺序 = EPSDUCVWYM.ZLKXNBTFGORIJHAQ
明文:THE QUICK BROWN FOX.
经过密阵转换:
T H E Q U I C K B R O W N F O X .
2 3 1 3 1 3 1 2 2 3 3 1 2 3 3 2 2
3 3 1 3 2 2 2 2 3 2 1 3 3 1 1 2 1
3 1 1 3 2 2 3 2 2 1 3 2 1 1 3 3 2
T(233)表示T在第一个方阵第三行第三列的位置
分组(分组密钥以5为例):
THEQU ICKBR OWNFO X.
&&&from pycipher import Foursquare
&&&fs = Foursquare('zgptfoihmuwdrcnykeqaxvsbl','mfnbdcrhsaxyogvituewlqzkp')
&&&fs.encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')
'ESZWQAFHGTDKWHRKUENYQOLMQTUNWMBPTGHQ'
&&&fs.decipher('ESZWQAFHGTDKWHRKUENYQOLMQTUNWMBPTGHQ')
'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'
在线加解密
棋盘密码(Checkerboard Cipher)是使用一个波利比奥斯方阵和两个密钥作为密阵的替换密码,通常在波利比奥斯方阵中J字母往往被包含在I字母中。
示例密阵:
--------------
经过密阵替换:
密文:RK BK RU OC OC BI NK BQ WK RI OQ WI BU NU OQ WU
跨棋盘密码
跨棋盘密码(Straddle Checkerboard Cipher)是一种替换密码,当这种密码在结合其他加密方式,加密效果会更好。
棋盘示例(选择3和7作为变换):
0 1 2 3 4 5 6 7 8 9
3: h b i g q r o s a z
7: l u t j n w v x
明文: T H E Q U I C K B R O W N F O X
经过加密棋盘替换得到密文:72 30 9 34 71 32 4 1 31 35 36 75 74 0 36 77
当然我们还可以继续用其他的加密方式在对跨棋盘密码加密出的结果再进行加密:
示例变换密钥:83729
-----------------------------
在经过棋盘转换后:
ppfmyk n if
pfkyfyd hkmmcfc
最终得到密文:ppfmyk n in pfkyfyd hkmmcfc
在线加解密
分组摩尔斯替换密码
分组摩尔斯替换密码(Fractionated Morse Cipher)首先把明文转换为莫尔斯电码,不过每个字母之间用x分开,每个单词用xx分开。然后使用密钥生成一个替换密表,这个密表包含所有. - x组合的情况(因为不会出现xxx的情况,所以一共26种组合)。
密钥:MORSECODE
MORSECDABFGHIJKLNPQTUVWXYZ
.........---------XXXXXXXX
...---XXX...---XXX...---XX
.-X.-X.-X.-X.-X.-X.-X.-X.-
说明:密表下半部分是固定的,密表的安全性以及加密效果主要取决于使用的密钥。
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
(类似)摩尔斯电码:-x....x.xx--.-x..-x..x-.-.x-.-xx-...x.-.x---x.--x-.xx..-.x---x-..-xx.---x..- --x.--.x...xx---x...-x.x.-.xx-x....x.xx.-..x.-x--..x-.--xx-..x---x--.
说明:明文在转换为(类似)摩尔斯电码后进行每3个字符分组,再进行密表的查表。
密文(经过密表替换):LMUWC OQVHG ZMTAK EVYSW NOYJQ NLIQB JQCDH XMDYF TWRGP FWNH
已知密钥在线加解密
Bazeries密码
Bazeries密码(Bazeries Cipher)是换位密码和替换密码的组合,使用两个波利比奥斯方阵,一个明文字母方阵,使用一个随机的数字(一般小于1000000)的生成一个密钥矩阵同时作为第一轮明文划分分组,比如2333这个数字翻译为英文便是TWO THOUSAND THREE HUNDRED THIRTY THREE,从第一个字母T开始选取不重复的字母,之后再从字母表中按序选取没有出现的字母组成密钥矩阵。
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
随机数字:2333
示例密钥矩阵:
明文分组:
TH EQU ICK BRO WN FOX JUM PSO VE RTH ELA ZYD OG
分组明文反序:
HT UQE KCI ORB WN XOF MUJ OSP EV EHT ALE DYZ GO
使用密钥矩阵替换:
IL XHP QEG KDS YR CKW NXG KBV PU ILD TOP FMZ AK
(比如’H’在明文矩阵对应到密钥矩阵的位置就是’I’)
已知密钥在线加解密
Digrafid密码(Digrafid Cipher)使用两个密钥生成分别生成类似波利比奥斯方阵的3×9方格的密表。,主要有3分组和4分组两类
第一个方阵密钥:digrafid
第二个方阵密钥:cipher
1 2 3 4 5 6 7 8 9
D I G R A F D B C 1 2 3
E H J L M N O P Q 4 5 6
S T U V W X Y Z # 7 8 9
明文:THE QUICK BROWN FOX
密表转换(以4分组为例):
Th Eq Ui Ck
Br Ow Nf Ox
说明:T在第一矩阵第2列,h在第二矩阵第4行,T所在的行与h所在的列相交的位置数字为7,所以Th表示为274。
213 975 724 924
876 716 566 516
Ar格朗普雷密码
格朗普雷密码(Grandpré Cipher)是替换密码的一种,一般使用8个8字母的单词横向填充8×8方阵,且第一列为一个单词,并且在方阵中26个字母都必须出现一次以上。
密文:84 27 82 41 51 66 31 36 15 71 67 73 52 34 67
说明:明文中的字母在密阵位置可能不止一个,所以加密结果可能有多种,但是不影响解密。密阵还有6×6,7×7,9×9,10×10几种。显然密阵越大每个字母被替换的情况就可能越多,那么加密效果就更好。
比尔密码维基百科
一种将中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几。例如:
王夫 井工 夫口 由中人 井中 夫夫 由中大:67 84 70 123 82 77 125
盲文或称点字、凸字,是专为盲人设计、靠触觉感知的文字。透过点字板、点字机、点字打印机等在纸张上制作出不同组合的凸点而组成,一般每一个方块的点字是由六点组成,左侧从上到下为123,右侧为456,叫一方。 它是由法国盲人路易·布莱尔于1824年创造的,故国际上通称为“布莱尔(Braille)”。
盲文对照表:
[php language=”混淆加密”][/php][/php]
[css language=”/js混淆加密”][/css][/css]
VBScript.Encode混淆加密
VBscript在线
ppencode-Perl把Perl代码转换成只有英文字母的字符串。
JSfuck在线转换
+++++ +++++ [-&++ +++++ +++&] &++++ .---. +++++ ++..+ ++.&+ +++++ +++++
[-&++ +++++ ++++& ]&+++ ++++. &++++ +++[- &---- ---&] &--.& +++++ ++[-&
----- --&]& ----- ----- .&
uuencode编码
UUencode是一种二进制到文字的编码!它不是MIME编码中一员。最早在unix 邮件系统中使用,全称:Unix-to-Unix
encoding。它也是定义了用可打印字符表示二进制文字一种方法,并不是一种新的编码集合。Uuencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。跟Base64具有非常多的类似,也做了一些特殊转码说明!因为对所有文本都会编码一次可读性不是很好!!具体编码原理、算法可以查考
例如:M.3!-,$UO.3!-,$UO.3`*,38X33!-;S$V.$TP36\Q-C@*,34X33!-;S$U.$TP%36\Q-3@`
uuencode解码得到:
90M0Mo90M0Mo90
168M0Mo168M0Mo168
158M0Mo158M0Mo158
uuencode在线编码(目前我见过最好用的)
Converter.exe
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 墨刀 微信小程序 的文章

 

随机推荐