自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 AES 算法

可以根据不同的填充padding(PKCS5/PKCS7/ISO10126/NO)、位数digit(128b/192b/256b)、模式mode(ECB/CBC/CFB/OFB/CTR)、密钥key(16B/24B/32B)、偏移量iv来控制加密行为。将列混合去除的轮加密步骤,即字节代换(SubBytes), 行移位(ShiftRows),轮钥加密(AddRoundKey)如果 i 是四的倍数:W[i]=W[i-4] XOR T(W[i-1]) (T函数为 字循环,字节代换和轮常量异或)

2024-11-18 17:36:39 772

原创 DES 算法

DES是一种将64比特的明文加密成64比特的密文的对称密码算法,它的密钥长度是56比特。DES是分组密码一种。S盒替换(S-boxes) :将异或后的数据分为8个6位的块,每个块通过对应的S盒进行替换(头尾行中间列),S盒将6位输入映射为4位输出。P盒置换(P-box) :将S盒替换后的32位数据通过P盒进行置换,P盒定义了32位输出的新顺序。:首先,64位密钥通过置换选择1(PC-1)进行置换,去除奇偶校验位,得到56位密钥。:将移动后的C和D重新组合,然后通过置换选择2(PC-2)生成48位的子密钥。

2024-11-14 17:25:50 1183

原创 RC 4加密算法

RC4开始时是商业密码,没有公开发表出来,但是在1994年9月份的时候,它被人匿名公开在了Cypherpunks 邮件列表上,很快它就被发到了sci.crypt 新闻组上,随后从这传播到了互联网的许多站点。随之贴出的代码后来被证明是真实的,因为它的输出跟取得了RC4版权的私有软件的输出是完全相同的。step 3:用K表对S表进行初始替换(对每个S[i]根据K[i]确定的一个方案将S[i]替换为S[j],即S[i]=S[K[i]--->K[J];4.python代码。

2024-11-12 17:13:34 523

原创 对称密码-XOR

(0与0的XOR结果为0) (0与1的XOR结果为1) (1与0的XOR结果为1) (1与1的XOR结果为0)如果将0理解为偶数,将1理解为奇数,就可以将XOR和一般的加法运算等同起来。python中用^或异或(xor) 直接表示。全称 “exclusiveor ”偶数(0)+偶数(0)=偶数(0)偶数(0)+奇数(1)=奇数(1)奇数(1)+偶数(0)=奇数(1)奇数(1)+奇数(1)=偶数(0)其与or语句并不相同。

2024-11-11 17:32:50 253

原创 培根密码

所有字体一转回A,字体二转回B,以后再按上表拼回字母法兰西斯·培根另外准备了一种方法,其将大小写分别看作A与B,可用于无法使用不同字体的场合(例如只能处理纯文本但这样比起字体不同更容易被看出来,而且和语言对大小写的要求也不太兼容时)。listStr += list(CODE_TABLE.keys())[list(CODE_TABLE.values()).index(i)]#找出某个值第一个匹配项的索引位置。for i in range(0,len(bacon),5):#5位为一组做一个列表。

2024-11-08 22:23:33 1198

原创 维吉尼亚密码

例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。key = key*(len(text)//len(key))+key[:len(text)%len(key)]#重复密钥至明文长度。

2024-11-02 17:28:49 997

原创 Enigma 密码

发送者每输入一个字母,转子就会旋转,同时灯泡亮起,发送者记下亮起的灯泡所对应的字母。这里是输入 nachts 个字母,并记录下所对应的5个字母(如 KXNWP ) (5)拼接 接下来,发送者将"加密后的通信密码" ATCDVT 与"加密后的消息" KXNWP 进行拼接,将 ATCDVTKXNWP 作为电文通过无线电发送出去。通信密码中的3个字母实际上代表了三个转子的初始位置。(2)设置 Enigma 接收者查阅国防军密码本中的每日密码,并按照该密码设置 Enigma ,这一步和发送者进行的操作是相同的。

2024-11-01 09:01:43 484

原创 base(16 85 91 100)

将每个组的二进制数据转换为整数: 将每个4字节的二进制数据视为一个32位的二进制整数,然后将它转换为一个十进制整数。@[]^_`{|}~”)组成。Base85字符集通常包括85个字符,通常是ASCII字符集中的可打印字符,除去易混淆的字符和可能引起歧义的字符。Base91字符集通常包括91个字符,通常是可打印ASCII字符集中的字符,除去易混淆的字符和可能引起歧义的字符。填充(可选): 如果原始数据的长度不是4字节的倍数,可以使用"z"字符作为填充字符,以确保编码长度是5的倍数。

2024-10-31 15:24:17 1227

原创 base 家族(base 16 base32 base58 base 64)

例如输入单字节字符“%”,它对应的二进制值是“100101”,前面补两个0变成“00100101”(二进制值不足8比特的都要在高位加0直到8比特),从左侧开始按照5比特切分成两组:“00100”和“101”,后一组不足5比特,则在末尾填充0直到5比特,变成“00100”和“10100”,这两组二进制数分别转换成十进制数,通过上述表格即可找到其对应的可打印字符“E”和“U”,但是这里只用到两组共10比特,还差30比特达到40比特,按照5比特一组还需6组,则在末尾填充6个“=”。我在之前详细讲述过,

2024-10-30 20:12:32 894

原创 base 64

在编码后的Base64文本后加上一个或两个 = 号,代表补足的字节数。也就是说,当最后剩余两个八位(待补足)字节(2个byte)时,最后一个6位的Base64字节块有四位(2*6-8=4)是值,最后附加上两个等号;xml 中如果像嵌入另外一个 xml 文件,直接嵌入,往往 xml 标签就乱套了, 不容易解析,因此,需要把 xml 编译成字节数组的字符串,编译成可见字符。外一个 xml 文件,直接嵌入,往往 xml 标签就乱套了, 不容易解析,因此,需要把 xml 编译成字节数组的字符串,编译成可见字符。

2024-10-27 18:45:20 842

原创 古典密码学 :1.2栅栏密码

1.概念所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)2.加密原理①把将要传递的信息中的字母交替排成上下两行。②再将下面一行字母排在上面一行的后边,从而形成一段密码。例如:明文:FUFU DA REN TAI KE AI LE加密:FUFU DA REN TAI KE AI LE拆成两行;重新拼凑起来:3.解密。

2024-10-25 22:14:31 365

原创 古典密码学 :1.1凯撒加密

恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。恺撒密码还在现代的ROT13系统中被应用。其中一种方法是在表格中写下密文中的某个小片段使用所有可能的偏移量解密后的内容——称为候选明文,然后分析表格中的候选明文是否具有实际含义,得出正确的偏移量,解密整个密文。恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。

2024-10-25 21:56:06 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除