热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python密码加密解密(弱加密算法)

在测试过程中,我们经常会遇到接口数据加密、数据库密码加密怎么测试等问题,很多同学立马被吓退了。算法1:base64这不是加密算法,它叫做编码算法。比如:base64的特征是尾部经常


测试过程中,我们经常遇到接口数据加密、数据库密码加密如何测试等问题,很多同学很快就吓了一跳。


事实上,只要有耐心,测试过程的一般加密算法并不太难,有些不是加密算法。


密码学是一门比较模糊的科学。 电影《模仿游戏》是包括图灵在内的几位顶级数学家解读德军军事情报的故事。 但是,在工作中,不需要理解密码学的基础原理。 只要知道他们是怎么使用的就行了。


本文列举了测试和开发过程中最常用的算法,揭开了所谓“加密”过程的神秘面纱。


算法1:base64


这不是加密算法,叫做编码算法。 就像我们把文字编码成计算机的二进制数据一样。


说得更明白一点。 如果观察I am a programer这个词是英语的话,就可以通过翻译软件知道他本来的意思是“我是程序员”。


让我们看看这个字符串。 SSBsaWtlIHlvdQ==


如果你是萌新的人,你不知道那是什么意思吧。 读了这篇文章之后,我明白他的意思。 I like you


就像我们把中文翻译成英语一样,base64这样的编码算法只是把你看得懂的字翻译成肉眼看不懂的字,但如果你知道这些看不懂的符号是哪种语言,你就可以直接翻译回去。


例如,前面的SSBsaWtlIHlvdQ==是在base64中对I like you进行编码后得到的字。


“解读”也很简单。 base64在线编码,在网上搜索解码就有工具了。 如果使用代码,您将看到以下内容:




算法2:urlencode


URL编码和base64一样,只是对算法进行编码,而不是加密。 请记住,如果观察所看到的字符串的特征,分析编码方式,编码方式就很容易解码。


因为肉眼看不到具体的意义,所以为了防止这也是君子,请考虑一下小人的所谓“加密方式”。


例如,base64的特征是末尾经常带有=符号,url代码的特征是%多。


我们经常在浏览器中看到这样的地址:


http://example.com/q=私人


后半段有很多百分号的是url编码。 同样,可以通过搜索相应的工具直接解码以获得原始数据:


http://example.com/q=私人


对应的python代码如下。




算法3:md5


md5既不是编码也不是加密。 被称为摘要算法,也称为散列算法和散列算法。 他的主要职责是:


防止篡改


检查数据


例如,如果下载了该软件,您可能会担心该软件已被修改并嵌入了病毒。 软件开发者为了防止自己的软件被他人更改,会在主页上附加摘要信息。 例如,名为https://dl.snipaste.com/sha-1.txt的站点是软件各个版本的摘要信息。


在现实情况下载软件后,利用摘要算法检测工具检测软件变化,计算出他的摘要信息,如果与官方提供的一致,则软件没有变化; 如果不匹配,则表示该软件已被篡改。


摘要算法的另一个应用场景是保存密码。 我们日常注册账户输入的密码通常不会直接保存在数据库中,而是经过摘要(或加密)处理后保存在数据库中。 可以使用在线工具“加密”任意数据md5。 这里提供python版的代码:




注意:摘要算法是不可逆的,在BFB 3f 4712 D0 B04 E 8348 A3F B5 FA 0B9 BC 2中无法获得原始数据hello yuz。 数据库里的密码不知道你的真实密码。


为什么密码会被盗?


密码被盗通常是因为黑客利用摘要算法的另一个特性攻击了数据库。 这被称为碰撞库。


单一摘要算法的特点是,如果原始数据是固定的,则得到的散列值也相同。 例如,赫尔洛Yuz得到了bfb3f4712d0b04e8348a3fB5fa0b9BC2。


黑客利用这种对应关系,把很多人常用的密码和对应的哈希值制成关系表(彩虹表),一个一个地试。


例如很多人喜欢在8888、abc123上生成密码。 黑客只需要保存预先计算出这些密码的相应哈希值,就可以尝试突破你的账户。


什么是加盐?

上面的例子提到,黑客可以利用彩虹表套取你的密码,所以纯粹的摘要算法不是一种特别安全的方式去存储密码。但是我们可以采取“加盐” 的方式提高安全性。

网站开发者会提供一个类似于秘钥的东西,我们称为 salt, 其实就是一个随便起的字符串。然后将原始密码 + salt 得到一个新字符串,再对他进行 hash。

只要 salt 不被黑客知道,就没有办法利用彩虹表来攻击数据库。以下是加盐版的 python 代码:

在测试过程中,如果公司的密码是通过摘要算法生成的,可以找开发小哥哥要盐, 然后通过对应的摘要算法验证数据库密码。

算法4:SHA1

SHA1 和 md5 一样,也是摘要算法,还有 SHA256, SHA512。 我们看到的区别就是长度不一样。长度越长,理论上更加安全,同时也意味着速度更慢。

以下是sha1 的代码,和 md5 几乎一样:

总结

本文我们提到的“加密” 算法,都是伪加密,只有盐(salt)和密码类似;

真正的加密算法也有很多,下节再详细补充。

base64 编码常用于在URL、COOKIE、网页中传输少量二进制数据;

优点:速度快,肉眼不可理解

缺点:编码比较长,非常容易被破解,仅适用于加密非敏感信息

url 编码常用于 URL 数据的编码和解析;

md5 是最经典,使用最广泛的摘要算法。

部分公司会采用 md5 进行密码的保存

还有公司会采用其他更适合对密码进行摘要的算法,具体找开发

sha1, sha256, sha512 比 md5 安全性更高,但是速度更慢,同时存储数据的时候耗费的资源会更多。


推荐阅读
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 无线认证设置故障排除方法及注意事项
    本文介绍了解决无线认证设置故障的方法和注意事项,包括检查无线路由器工作状态、关闭手机休眠状态下的网络设置、重启路由器、更改认证类型、恢复出厂设置和手机网络设置等。通过这些方法,可以解决无线认证设置可能出现的问题,确保无线网络正常连接和上网。同时,还提供了一些注意事项,以便用户在进行无线认证设置时能够正确操作。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 大学生自学复制假饭卡:2个月卖出3千张,获利10万元!背后的神器长啥样?
    山东淄博的一名在校大学生通过自学复制饭卡的技术,2个月内成功卖出3千张假饭卡,获利10万元。他使用了一种特殊的设备来复制饭卡,并通过网店销售给其他学生。该学生已被刑拘。此事被发现是因为学校食堂管理员发现了大量负数的情况,经警方调查后发现是这名学生所为。他制作的假饭卡与真卡几乎一模一样,售价仅为面值的40%。该学生一共复制了三千多张饭卡,并已全部卖完,获利十万余元。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
author-avatar
AmenTo_AT
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有