关于MD5,SHA,RSA,DES3,AES,BASE64算法的区别?

libaiuncle 2009-12-14 03:15:56
算法 Key 位数 可逆? 其它
MD5 没有Key, 有区别16位和32位, 不可逆 (无)
SHA (?) (?) 不可逆 (无)
RSA 有(公Key,私KEY) (?) 可逆 公、私Key采用不同的加密算法
DES3 有 (?) 可逆 (无)
AES 有 (?) 可逆 (无)
BASE64 没有KEY (?) 可逆 (无)
...全文
5872 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankArmageddon 2010-01-03
  • 打赏
  • 举报
回复
算法 Key 位数 可逆? 其它
MD5 没有Key, 有区别16位和32位, 不可逆 (无)
SHA 有 32 不可逆 (无)
RSA 有(公Key,私KEY) 128 可逆 公、私Key采用不同的加密算法
DES3 有 32 可逆 (无)
AES 有 64 可逆 (无)
BASE64 没有KEY (?) 可逆 (无)
WWE33 2009-12-22
  • 打赏
  • 举报
回复
楼上说得对啊,MD5和SHA1只不过是HASH算法,HASH算法通常说来都是门限映射,是单向不可逆的。
但是加密和解密却是一对相对变换。
数据之巅 2009-12-15
  • 打赏
  • 举报
回复
你列举的算法用途和作用都不一样的,要注意区别,最好还是了解一下密码方面的基础只是。

Base64编码转换在.NET中都直接可以实现的。就是用Convert类。

RSA的密钥很长,速度慢,不适合加密大量数据,一般用于传递密钥;

哈希函数相当与个指纹的概念,就是不同的字符串,对象的哈希值不一样,但是不可逆。。
数据之巅 2009-12-15
  • 打赏
  • 举报
回复
我给你讲解吧:首先 你列举的算法不全部是加密算法。哈希函数,比如MD5,SHA,这些都不是加密算法。要注意他们的区别和用途,很多网友都把md5说成是加密算法,这是严重不正确的啊。

哈希函数:MD5,SHA 是没有密钥的,相当与指纹的概念,因此也是不可逆的;
md5是128位的,SHA有不同的算法,有128,256等位。。。如SHA-256,SHA-384
然后 就是 Base64,这更加不属于加密算法的范围了,它只是将byte[]数组进行了转换,为什么要转换呢?就是因为很多加密后的密文后者一些特殊的byte[]数组需要显示出来,或者需要进行传递(电子邮件),但是直接转换就会导致很多不可显示的字符,会丢失一些信息,因此就转换位Base64编码,这些都是可显示的字符。所以转换后,长度会增加。它是可逆的。

再就是 3DES,DES 这才是加密算法,因此也是可逆的,加解密需要密钥,也就是你说的key

最后是 RSA ,这是公钥密码,也就是加密和解密密钥不同,也是可逆的。
libaiuncle 2009-12-15
  • 打赏
  • 举报
回复
楼上的,那个网址没介绍得很详细啊
donkey301 2009-12-14
  • 打赏
  • 举报
回复
http://zh.wikipedia.org/wiki/MD5
然后在这个网页里能找到SHA, AES等等的链接,一般这种常见的名词解释wiki里都有,英文解释的更详细一点
课程亮点: 从无到有、手把手教你编写CA/TA,快速上手,快速部署项目标准的开发,开发一套CA/TA,可部署到不同的TEE OS上。受益人群: 汽车行业主机厂、tier1、SOC芯片公司的安全部门同事手机行业,ODM/OEM、SOC芯片公司的安全部门同事学生课程收益: 熟悉CA/TA开发的步骤和流程。快速上手,快速搭建自己开发环境。熟悉各类TEE、基于各类TEE的CA/TA开发步骤。搭建自己的安全平台熟悉各类常规安全应用熟悉tee密码学算法、tee存储  课程大纲  Hello大家好,上架一门新的视频课程,课程主要包含两大部分,第一部分搭建环境,第二部分从无到有的编写代码。带领大家手把手编写。 具体大纲如下:(1)qemu v8环境搭建- 搭建一个qemu_v8的环境,用于跑BL1-->BL2-->BL31-->BL32-->BL33-->Linux kernel;- 直接使用已搭建好的镜像- 工程使用以及说明(2)CA/TA开发编程实践从无到有编写代码,已完成的大纲如下:- 2秒钟快速编写(clone)一组CA/TA程序- 安全存储详解以及代码示例- CA到TA双向传参数的四种方式(value、temref、memref),区别?优缺点?- 对称密码学算法aes的使用,CBC/ECB/CTR/XTS分组密码的使用,加密解密,pending等- aeskey的操作,如何随机生成aeskey(TEE_GenerateKey),objectHandle和aesbuf有什么区别? 如何将handle- 认证加密算法,如aes-GCM的使用- 非对称密码学算法RSA的使用,包括加密、解密、签名、验签- RSA key的处理,包含如何生成RSA KEY,rsakey object如何转换成可见的数组,如何转换der,如何转换pem,反向又如何转换- ECC/ECDSA的使用- 国密sm2 sm3 sm4的使用.  其中sm4包含加密、解密、签名、验签等- encode和decode的实现- TA属性的定制以及API的使用- 数字摘要  SHA1 sha224 sha256 sha384 sha512等- 消息认证码 HMAC- TEE侧获取时间的函数有哪些(TEE_GetSystemTime、TEE_GetREETime),有什么区别?分别是怎样使用的? - 如何获取随机数(TEE_GenerateRandom)?- TA调用TA的示例和演示后续可能继续补充的如下(也欢迎大家提需求):- multi-session和multi-instance的使用- CA LOGIN flag的使用 

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧