常见的加密类型及其算法

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

加密类型

使用算法

基本特性

对称加密

DES(数据加密标准,56位密钥)、

AES(高级加密标准,128位密钥)、

3DESBlowfishTwofishCAST5IDEARC6

加密、解密使用同一个密钥

通常用来加密数据,加解密速度快

密钥过多,管理密钥困难

密钥交换困难

加密:# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

常用选项:

  • -e:加密

  • -des3:加密数据时使用的算法,可用# openssl ? --> Cipher commands子命令中的各种其它算法代替

  • -a:对加密后的数据进行base64编码,或解密前先对数据进行base64解码

  • -salt:加盐。加盐后,相同的明文可以得到不同的密文。默认情况下,盐值是随机生成的

  • -in FILENAME:指定要加密的文件

  • -out FILENAME:指定加密后生成的文件

解密:# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out  fstab.plaintext

常用选项:

  • -d:解密

公钥加密

(非对称加密)

RSA(既能用于加密,又能用于数字签名)、

DSA(只能用于数字签名,不能用于数据加密)、

DH(一般用于密钥交换)

密钥成对出现

公钥:public key,可公开给所有人

私钥:private key,保证其私密性

使用公钥加密的数据,只能使用与之配对的私钥解密

使用私钥加密的数据,只能使用与之配对的公钥解密

通常用来身份认证(数字签名),很少用来加密数据

身份认证:发送方使用自己的私钥加密数据,接收方使用发送方的公钥解密数据,如果解密成功,就能证明发送方的身份

数据保密性:发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密数据,此方法能保证数据的保密性

# openssl genrsa -out ca.key 2048

# openssl req -new -key ca.key -out ca.csr

# openssl x509 -req -days 3650 -in ca.csr-signkey ca.key -out ca.crt

单向加密

MD5:消息摘要算法第五版,128

SHA:安全哈希算法,包括如下5种算法

  • SHA-1160

  • SHA-2

  • SHA-224224

  • SHA-256256

  • SHA-384384

  • SHA-512512

CRC-32:提取数据特征码

CBC-MACHMAC:消息认证算法

只能加密,不能解密,整个过程不可逆

通常用来提取数据特征码(数据指纹),验证数据的完整性

定长输出:无任输入数据多长,只要使用同一种单向加密算法,输出结果的长度都相同

雪崩效应:输入数据的微小改变,会导致结果的巨大变化

使用不同加密工具单向加密同一文件,只要加密算法一样,输出的消息摘要信息都一样

# openssl dgst -md5 | -sha1 fstab [-out  FILENAME]

# md5sum | sha1sum | sha224sum | sha256sum |  sha384sum | sha512sum fstab







      本文转自Marion0728  51CTO博客,原文链接:http://blog.51cto.com/qiuyue/1955775,如需转载请自行联系原作者




相关文章
|
1月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
21天前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
56 1
|
22天前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
28 2
|
24天前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
95 1
|
1月前
|
自然语言处理 Go 数据安全/隐私保护
对 int 类型的数据加密,有哪些好的方案?
对 int 类型的数据加密,有哪些好的方案?
60 13
|
1月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
39 1
|
1月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
2月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
2天前
|
SQL 安全 算法
网络安全的盾牌与矛:加密技术与安全意识的双重防线
【9月更文挑战第16天】在数字世界的海洋中,网络安全的灯塔照亮着信息流通的每一个角落。本文将深入探讨网络安全的核心——加密技术,以及构筑坚不可摧防线的另一块基石——安全意识。我们将从密码学的基础知识出发,逐步揭开加密技术的神秘面纱,并分析当前最常见的网络攻击手段,揭示安全意识的重要性。通过理论与实践的结合,旨在为读者提供一套实用的网络安全知识体系,以应对日益复杂的网络威胁。
|
3天前
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的重要性
【9月更文挑战第15天】在数字化时代,网络安全漏洞、加密技术和安全意识是保护个人和企业信息安全的关键要素。本文将深入探讨这些主题,并提供实用的建议和技巧,帮助读者提高自己的网络安全意识和技能。