在日常系统管理工作中,需要作一些加解密的工作,通过openssl工具包就能完成我们很多需求!
1. openssl RSA 加解密
RSA是基于数论中大素数的乘积难分解理论上的非对称加密法,使用公私钥的方法进行加解密
公钥 用于加密,它是向所有人公开的 ; 私钥用于解密,只有密文的接收者持有。
生成一个密钥(私钥)
[root@hunterfu ~]# openssl genrsa -out private.key 1024
注意: 需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密,后面的1024是生成密钥的长度.
通过密钥文件private.key 提取公钥
[root@hunterfu ~]# openssl rsa -in private.key -pubout -out pub.key
使用公钥加密信息
[root@hunterfu ~]# echo -n "123456" | openssl rsautl -encrypt -inkey pub.key -pubin >encode.result
使用私钥解密信息
[root@hunterfu ~]#cat encode.result | openssl rsautl -decrypt -inkey private.key
123456
至此,一次RSA加密解密的过程已经完成!
2. openssl DSA签名与验证
和RSA加密解密过程相反,在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多.
生成一个密钥(私钥)
[root@hunterfu ~]# openssl dsaparam -out dsaparam.pem 1024
[root@hunterfu ~]# openssl gendsa -out privkey.pem dsaparam.pem
生成公钥
[root@hunterfu ~]# openssl dsa -in privkey.pem -out pubkey.pem -pubout
[root@hunterfu ~]# rm -fr dsaparam.pem
使用私钥签名
[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -sign privkey.pem > sign.result
使用公钥验证
[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -verify pubkey.pem -signature sign.result
Verified OK
至此,一次DSA签名与验证过程完成!
3. 总结及注意事项
注意: 由于信息经过加密或者签名后,都变成不可读模式,为了方便终端查看和传输使用(url提交数据,需要作urlencode操作),可以使用
base64进行编码
openssl enc -base64 -A :将加密后的信息使用base64编码
openssl enc -d -base64 -A : 将信息使用base64反编码
java中此私钥需要转换下格式才能使用:
[root@hunterfu ~]# openssl pkcs8 -topk8 -nocrypt -in private.key -outform PEM -out java_private.key
当然openssl 是一个很实用的加密工具包,还有很多东西值得学习和总结,以后有空再说!
转自:
openssl 非对称加密DSA,RSA区别与使用介绍
分享到:
相关推荐
其次,非对称加密,如RSA、DSA、ECC等,其特点是有一对密钥:公钥和私钥。公钥可以公开,用于加密;私钥必须保密,用于解密。非对称加密的安全性更高,但速度相对较慢。在OpenSSL中,RSA是最常用的非对称加密算法。...
**RSA** 是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出。在RSA中,数据使用公钥加密,只能用对应的私钥解密,反之亦然。这种特性使得RSA广泛用于数字签名和安全通信。在易语言中...
在非对称加密中,常见的算法有RSA、ECC(椭圆曲线加密)和DSA(数字签名算法)。RSA是最早被广泛应用的非对称加密算法,它的安全性基于大整数因子分解的难度;ECC则以其更高的安全性与效率成为一种现代选择,尽管...
本文将详细介绍 OpenSSL 的使用指南,包括密码学基础、对称加密、非对称加密、数字签名、HASH 算法、HMAC、混合密码体制、公钥发布和身份鉴别等知识点。 密码学基础 密码学是研究如何保护数据安全的科学,包括加密...
2. 非对称加密:如RSA、DSA(数字签名算法)、ECC(椭圆曲线加密)等,非对称加密使用公钥和私钥,公钥可公开,用于加密;私钥必须保密,用于解密,安全性更高,但计算复杂度较大。 3. 哈希函数:如MD5、SHA-1、SHA...
1. **加密算法**:OpenSSL支持多种加密算法,如AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、Blowfish、Twofish等对称加密算法,以及RSA、DSA、ECDSA等非对称加密算法。对称加密用于大量...
OpenSSL还提供了公钥加密机制,如RSA和DSA,它们基于非对称加密原理,用于密钥交换和数字签名。 在实际应用中,OpenSSL常用于SSL/TLS协议的实现,确保网络通信的安全。SSL/TLS协议在建立连接时会进行握手过程,其中...
1. **RSA**:RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。它基于大整数因子分解的困难性,分为公钥和私钥。公钥可以公开,用于加密数据,而私钥则需要保密,用于解密数据。在...
使用 OpenSSL 生成非对称秘钥,命令为:`openssl genrsa -out rsa.key 2048` 4.2 创建证书签名请求文件(CSR 文件) 使用 OpenSSL 创建证书签名请求文件,命令为:`openssl req -new -key rsa.key -out rsa.csr` ...
传统的非对称加密算法如RSA、DSA等在量子计算机面前存在安全隐患,因为量子计算机的计算能力远超经典计算机,能够快速破解基于数论难题的加密算法。针对这一问题,科研人员提出了一种新的非对称加密及签名算法,旨在...
非对称加密使用一对公钥和私钥,公钥可公开,私钥必须保密。发送者使用接收者的公钥加密数据,只有拥有对应私钥的接收者才能解密。这解决了对称加密的密钥分发问题,但非对称算法计算量大,速度较慢。 **证书管理**...
1. **加密算法支持**:OpenSSL 支持多种加密算法,如对称加密(如 AES、DES、3DES)、非对称加密(RSA、DSA、ECC)以及哈希函数(MD5、SHA1、SHA256 等)。 2. **SSL/TLS 协议实现**:OpenSSL 实现了 SSLv2/v3 和 ...
总的来说,通过OpenSSL将导出的Key文本转化为RSA结构,能够方便地在各种环境中使用非对称加密算法,为数据的安全传输提供了保障。在实际应用中,需要根据具体需求选择合适的安全策略,并注意遵循最佳实践,以确保...
**RSA算法** 是由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出的一种非对称加密算法。其核心原理是基于两个大素数的乘积难以分解的数学难题。RSA主要分为两部分:加密和解密。对于数字签名,RSA通常用于...
非对称加密认证方案提供了比传统的基于密码的认证更高的安全性,因为它使用一对公钥和私钥进行身份验证,其中公钥是可以公开的,而私钥则需要保密。 在Ntpd中,`ntp-keygen`工具是生成密钥材料的核心工具。这个工具...
使用OpenSSL-RSA加密解密 什么是OpenSSL? OpenSSL是开放源代码库,可使用TLS(传输安全层)和SSL(安全套接字层)在网络上提供安全通信。 它支持许多加密算法AES,DSA,RSA,SHA1,SHA2,MD5。。有关更多信息 什么...
(4)输出反馈模式(Output Feedback Mode,OFB):输出反馈模式与 CFB 相似,惟一差别是,CFB 中密文填入加密过程下一阶段,而在 OFB 中,初始化向量加密过程的输入填入加密过程下一阶段。 2. 摘要算法 摘要算法...
2. 密钥管理:生成、存储和管理公钥和私钥,支持RSA、DSA、ECDSA等非对称加密算法。 3. 数字签名:通过非对称加密算法进行数字签名,验证数据的完整性和来源。 4. X.509证书:处理X.509数字证书,用于身份验证和证书...
- 非对称加密:RSA、DSA(数字签名算法)、ECC(椭圆曲线加密)等,用于密钥交换和数字签名,安全性较高但计算量大。 - 哈希函数:MD5、SHA1、SHA256、SHA384、SHA512等,用于生成消息摘要,验证数据完整性。 ...
1. **加密算法**:OpenSSL 支持多种加密算法,包括对称加密(如AES、DES、3DES)和非对称加密(如RSA、DSA、ECC)。对称加密用于大量数据的快速加解密,而非对称加密则用于安全性更高的密钥交换和签名。 2. **TLS/...