常见的加密类型及其算法

本文涉及的产品
密钥管理服务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,如需转载请自行联系原作者




相关文章
|
3月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
3月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
130 1
|
3月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
76 2
|
3月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
274 1
|
3月前
|
自然语言处理 Go 数据安全/隐私保护
对 int 类型的数据加密,有哪些好的方案?
对 int 类型的数据加密,有哪些好的方案?
101 13
|
3月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
60 1
|
3月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
4月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
7天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。
|
7天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
20 2