快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

密码学第四周-创新互联

密码学第四周 对称密码

对称密码是指加密和解密都使用相同的密钥。

创新互联专注于朝阳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供朝阳营销型网站建设,朝阳网站制作、朝阳网页设计、朝阳网站官网定制、小程序定制开发服务,打造朝阳网络公司原创品牌,更为您提供朝阳网站排名全网营销落地服务。博福特密码

一种类似于维吉尼亚密码的替代密码。

属于对称加密,加密算法与解密算法相同。

加密:明文的第一个字母为D,则先在表格中找到第D列。 由于密钥的第一个字母为F,于是D列从上往下找到F。这一F对应的行号为C,因而C便是密文的第一个字母。以此类推可以得到密文。

解密:密文的第一个字母为b,则先在表格中找到第b行。由于密钥的第一个字母为t,于是b行从左往右找到t。这一t对应的列号为s,因而s便是明文的第一个字母。以此类推可以得到全部明文。

密码表如下:

img

from pycipher import Beaufort
print(Beaufort('hello').encipher('good luck'))
print(Beaufort('hello').decipher('BQXIDNCB'))
DES

DES(分组加密算法):

先将原始数据切成64位的明文分组

密钥位64位,其中有效的密钥长度只有56位(分为八块每块长为八位,每隔八位设置一位为校验位,第8、16、24、32、40、48、56、64位是奇偶校验位)

分组后的明文组和56位的密钥按位替代或交换的方法得到密文组。

3DES

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。

3DES加密过程为:C=Ek3(Dk2(Ek1§))

3DES解密过程为:P=Dk1(EK2(Dk3©))

AES

AES(高级加密标准)基本算法,实现 AES 有几种模式

AES 有 5 种加密操作模式:

​ 1. 电码本模式(Electronic Codebook Book (ECB)) 这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。不需要iv(偏移量)

​ 2. 密码分组链接模式(Cipher Block Chaining (CBC)) 这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。密钥字节长度可以是16位(AES-128)、24位(AES-192)、32位(AES-256),iv字节长度必须为16位,明文的字节长度必须为16字节的倍数,不足的后面填充0。

​ 3. 计算器模式(Counter (CTR)) 在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。

​ 4. 密码反馈模式(Cipher FeedBack (CFB))

​ 5. 输出反馈模式(Output FeedBack (OFB))

四方密码

使用4个预先设置的5x5字母矩阵,每个矩阵包括25个字母。

左上和右下矩阵式是标准字母排序明文矩阵,左下和右上矩阵是打乱顺序的密钥矩阵。

在这里插入图片描述

整理明文,两个字母一组,分组不够时用’x’填充。

加密过程,分别在明文矩阵中找到’TH’,分别找到他们在右上矩阵和左下矩阵的交点字母’ES’

即明文。

base系列密码

base16就是用16(2^4)个字符,对二进制数据进行编码的方式

用于编码的字符只有:1-9,A-F

base32就是用32(2^5)个字符,对二进制数据进行编码的方式

A-Z,2-7

base64)编码是用64(2^6)个字符,对二进制数据进行编码的方式

在base32的基础上,增加了"a-z,0,1,8,9,+,/“,以及特殊填充字符”="

base36 密文由36个字符组成,加密仅支持整数数字,解密仅支持字符串,不支持中文

A-Z,0-9

base58 不使用数字”0”,字母大写”O”,字母大写”I”,和字母小写”l”,以及”+”和”/”符号

base62 密文由62个字符组成

A-Z,a-z,0-9

base85

base91密文由91个字符组成

0-9,a-z,A-Z, !#$%&()*+,./:;<=>?@[]^_`{|}~”

base92

字符组成

A-Z,a-z,0-9

base85

base91密文由91个字符组成

0-9,a-z,A-Z, !#$%&()*+,./:;<=>?@[]^_`{|}~”

base92

base100 密文由Emoji表情组成

buuctf

1.摩斯密码
找到一个在线网站解码
在这里插入图片描述
网上找到一个脚本,查字典破解

MORSE_CODE_DICT = {   'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
                   'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-',
                   'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-',
                   'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--',
                   'X': '-..-', 'Y': '-.--', 'Z': '--..',
                   '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....',
                   '7': '--...', '8': '---..', '9': '----.', '0': '-----',
                   ', ': '--..--', '.': '.-.-.-', '?': '..--..', '/': '-..-.', '-': '-....-',
                   '(': '-.--.', ')': '-.--.-'
                   }

#解密
# 将字符串从摩斯解密为英文的函数
def decrypt(message):
    # 在末尾添加额外空间以访问最后一个摩斯密码
    message += ' '
    decipher = ''
    citext = ''
    global i
    for letter in message:
        # 检查空间
        if letter != ' ':
            i = 0
            # 在空格的情况下
            citext += letter
        # 在空间的情况下
        else:
            # 如果 i = 1 表示一个新字符
            i += 1
            # 如果 i = 2 表示一个新单词
            if i == 2:
                # 添加空格来分隔单词
                decipher += ' '
            else:
                # 使用它们的值访问密钥(加密的反向)
                decipher += list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT.values()).index(citext)]
                citext = ''
    return decipher

message = ".. .-.. --- ...- . -.-- --- ..-"
result = decrypt(message)
print(result)

2.MD5
md5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要。
使用在线网站解密
在这里插入图片描述
3.一眼就解密
base64

import base64
str='ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30='
m = base64.b64decode(str.encode('utf-8')).decode('utf-8')
print(m)

得到flag
4.篱笆墙的影子
栅栏密码
在这里插入图片描述
5.rsarsa
已知p,q,e,c
n=p*q

p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
n =p*q
phi_n=(p-1)*(q-1)
d=gmpy2.invert(e,phi_n)
m=pow(c,d,n)
print(m)
print(libnum.n2s(int(m)))

6.url编码
http://www.jsons.cn/urlencode/
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:密码学第四周-创新互联
网址分享:http://6mz.cn/article/dsdepp.html

其他资讯