网站首页 > 技术文章 正文
总有人写文章提到Base64或者MD5加密,别分傻傻不清楚。通常说的加密指的是对称加密,需要加密算法(比如公开的AES算法)和密钥,只有正确的密钥才能解密出明文。
Base64应该称之为编码,就好比一个文件从gb18030转换成utf8一样,转换过程是公开的,也没有密钥参与。base64编码主要用于将二进制数据转换成ASCII字符,便于某种协议传输。比如,你socket编程,传输一段数据,数据可以是任意的;但是,如何用HTTP协议传输一段较短的二进制数据呢?一般就采用base64编码了。那么有人会问?二进制数据直接转换成ASCII码不可以码?比如 0x33 0x44直接转换成3344不可以吗?也可以,不过Base64编码稍微会节省一点空间。
MD5是一种摘要算法,比如对一个大文件做md5计算,会得到16字节的数据,该数据可以代表这个大文件。记住,只是某种代表而已。通过md5值是不可能恢复原文的,如果可以,那岂不是说,任意数据都能压缩成16字节?
摘要计算有什么用处吗?举个简单的例子:比如某网盘有这样一个功能,叫做瞬间拷贝,你可以把别人的1G的文件秒拷到你的网盘;或者有时候你发现,你上传几个G的文件,只需要几秒中。这就需要用到摘要了,当你上传文件时,它计算你的文件的摘要,与它已有的文件的摘要做比较,如果发现有相同的,它就不用上传了。需要注意的是,摘要均存在碰撞问题,文件A和文件B不一样,但是他们的摘要可能一样,这是有一定概率的,虽然概率很低。摘要中的碰撞,最致命的是有效碰撞,即有效碰撞。
值得一提的是,MD5早就不安全了,sha1也刚被google给攻破了(https://shattered.io/)。
猜你喜欢
- 2024-09-27 MD5 到底算不算一种加密算法? md5是数据加密算法吗
- 2024-09-27 在网站开发时你还是只用md5加密密码吗?
- 2024-09-27 通过一次安全处理暴露的问题 通过一次安全处理暴露的问题的英文
- 2024-09-27 加解密与HTTPS(3) 加解密服务器通讯异常
- 2024-09-27 Qt怎么使用MD5加密 md5在线加密解密工具
- 2024-09-27 Java加密体系(MD5算法) javamd5密钥加密解密
- 2024-09-27 Swift版StringExtention方法MD5加密
- 2024-09-27 浅谈MD5加密算法,头条官方工程师就是依此内容查重(小白勿进)
- 2024-09-27 用MD5加密为何不再安全了 md5加密后的值是唯一的吗
- 2024-09-27 openssl md5算法——Linux下(字符串加密、文件加密)
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)