三分钟教你学会如何将密文解码成明文

1:准备好你的密文(将铭文转换成密文)
代码如下:

# coding=utf-8
import base64


def encrypt(en_str):
    """
    加密:先对原字符串作base64加密,然后将加密后的字符串首尾字符对换位置,得到密文
    :param en_str: 待加密明文
    :return: 加密后的密文
    """
    en_str = base64.b64encode(en_str)
    # print "加密后的字符串:  " + en_str
    en_str = en_str[-1] + en_str[1:len(en_str) - 1] + en_str[0]
    # print "对换后的字符串:  " + en_str
    return en_str


def decrypt(de_str):
    """
    解密:先将密文首尾字符对换位置,然后base64解密
    :param de_str: 待解密密文
    :return:
    """
    de_str = de_str[-1] + de_str[1:len(de_str) - 1] + de_str[0]
    # print "解密前的字符串:  " + de_str
    de_str = base64.b64decode(de_str)
    # print "解密后的字符串:  " + de_str
    return de_str

if __name__ == '__main__':
    str = '这里填写你想要生成密文的明文,程序会自动生成一连串的密文给你'
    en_str = encrypt(str)
    print en_str
    de_str = decrypt(en_str)
    print de_str

我已经准备生成好的密文如下:想看看这段密文写的是什么吗?随着我的脚步一步步来看吧,你会看到意想不到的惊喜,也会惊艳与自己的破解密文的能力。
WYWz5rOo5YWs5LyX5Y+34oCc57yW56iL5b6u5YiK4oCd77yM6K6k6K+G576O5aWz5bCP57y5

2:Python开发环境的安装,如果没有的话,推荐一款在线运行神器:https://c.runoob.com/compile/6

3:将密文转换成明文的代码如下

将这段代码粘贴在神器里面,想看看小编说了一句什么话吗?那就点击运行:

# coding=utf-8
import base64


def encrypt(en_str):
    """
    加密:先对原字符串作base64加密,然后将加密后的字符串首尾字符对换位置,得到密文
    :param en_str: 待加密明文
    :return: 加密后的密文
    """
    en_str = base64.b64encode(en_str)
    # print "加密后的字符串:  " + en_str
    en_str = en_str[-1] + en_str[1:len(en_str) - 1] + en_str[0]
    # print "对换后的字符串:  " + en_str
    return en_str


def decrypt(de_str):
    """
    解密:先将密文首尾字符对换位置,然后base64解密
    :param de_str: 待解密密文
    :return:
    """
    de_str = de_str[-1] + de_str[1:len(de_str) - 1] + de_str[0]
    # print "解密前的字符串:  " + de_str
    de_str = base64.b64decode(de_str)
    # print "解密后的字符串:  " + de_str
    return de_str

if __name__ == '__main__':
    en_str = 'WYWz5rOo5YWs5LyX5Y+34oCc57yW56iL5b6u5YiK4oCd77yM6K6k6K+G576O5aWz5bCP57y5'
    print en_str
    de_str = decrypt(en_str)
    print de_str

OK,从朋友那里学来的Python解密小技巧,记录一下。

原文作者:祈澈姑娘技术博客:https://www.jianshu.com/u/05f416aefbe1
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

转载于:https://www.cnblogs.com/wangting888/p/9701459.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DES算法是一种对称加密算法,可以用来加密和解密数据。它使用一个密钥对数据进行加密和解密,密钥必须保密并且必须与加密数据的接收者共享。 下面是一些用DES算法解密的基本步骤: 加密步骤: 1. 将明文64位的块。 2. 对每个块进行初始置换(IP置换)。 3. 将块分左右两半,每半32位。 4. 依次进行16轮迭代,每轮包括以下步骤: a. 将右半部分进行扩展置换,变48位。 b. 将扩展后的右半部分与轮密钥进行异或运算。 c. 将异或运算的结果分8个6位的块。 d. 对每个6位块进行S盒置换,得到4位输出。 e. 将S盒输出的32位合并一组,并进行P置换。 f. 将P置换后的结果与左半部分进行异或运算。 g. 将左右半部分交换,进入下一轮迭代。 5. 最后一轮迭代后,将左右半部分交换,并进行逆初始置换(IP^-1置换)。 6. 得到加密后的64位密文解密步骤: 1. 将密文64位的块。 2. 对每个块进行初始置换(IP置换)。 3. 将块分左右两半,每半32位。 4. 依次进行16轮迭代,每轮包括以下步骤: a. 将左半部分进行扩展置换,变48位。 b. 将扩展后的左半部分与轮密钥进行异或运算。 c. 将异或运算的结果分8个6位的块。 d. 对每个6位块进行S盒置换,得到4位输出。 e. 将S盒输出的32位合并一组,并进行P置换。 f. 将P置换后的结果与右半部分进行异或运算。 g. 将左右半部分交换,进入下一轮迭代。 5. 最后一轮迭代后,将左右半部分交换,并进行逆初始置换(IP^-1置换)。 6. 得到解密后的64位明文需要注意的是,使用相同的密钥进行加密和解密。如果使用不同的密钥,解密将无法功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值