`
desert3
  • 浏览: 2158555 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

openssl 非对称加密DSA,RSA区别与使用介绍(转)

 
阅读更多
在日常系统管理工作中,需要作一些加解密的工作,通过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区别与使用介绍
分享到:
评论
1 楼 geelpheels 2016-02-06  
你的神马故事?
说给我听听。
我知道日本淫很会编故事。
你是日本淫?

相关推荐

    openssl测试对称加密和非对称加密以及数字签名测试demo,打开文件即可

    其次,非对称加密,如RSA、DSA、ECC等,其特点是有一对密钥:公钥和私钥。公钥可以公开,用于加密;私钥必须保密,用于解密。非对称加密的安全性更高,但速度相对较慢。在OpenSSL中,RSA是最常用的非对称加密算法。...

    易语言实现RSA,ECC,DES,AES,DSA算法

    **RSA** 是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出。在RSA中,数据使用公钥加密,只能用对应的私钥解密,反之亦然。这种特性使得RSA广泛用于数字签名和安全通信。在易语言中...

    非对称加密传输文件相关技术理论浅析

    在非对称加密中,常见的算法有RSA、ECC(椭圆曲线加密)和DSA(数字签名算法)。RSA是最早被广泛应用的非对称加密算法,它的安全性基于大整数因子分解的难度;ECC则以其更高的安全性与效率成为一种现代选择,尽管...

    OpenSSL使用指南.pdf

    本文将详细介绍 OpenSSL 的使用指南,包括密码学基础、对称加密、非对称加密、数字签名、HASH 算法、HMAC、混合密码体制、公钥发布和身份鉴别等知识点。 密码学基础 密码学是研究如何保护数据安全的科学,包括加密...

    易语言OpenSSL加密算法源码

    2. 非对称加密:如RSA、DSA(数字签名算法)、ECC(椭圆曲线加密)等,非对称加密使用公钥和私钥,公钥可公开,用于加密;私钥必须保密,用于解密,安全性更高,但计算复杂度较大。 3. 哈希函数:如MD5、SHA-1、SHA...

    openssl加密

    1. **加密算法**:OpenSSL支持多种加密算法,如AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、Blowfish、Twofish等对称加密算法,以及RSA、DSA、ECDSA等非对称加密算法。对称加密用于大量...

    openssl-engine-0.9.6l.tar.gz_ENGINE openssl_openssl加密解密

    OpenSSL还提供了公钥加密机制,如RSA和DSA,它们基于非对称加密原理,用于密钥交换和数字签名。 在实际应用中,OpenSSL常用于SSL/TLS协议的实现,确保网络通信的安全。SSL/TLS协议在建立连接时会进行握手过程,其中...

    OpenSSL 加密及解密

    1. **RSA**:RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。它基于大整数因子分解的困难性,分为公钥和私钥。公钥可以公开,用于加密数据,而私钥则需要保密,用于解密数据。在...

    openssl详细使用教程

    使用 OpenSSL 生成非对称秘钥,命令为:`openssl genrsa -out rsa.key 2048` 4.2 创建证书签名请求文件(CSR 文件) 使用 OpenSSL 创建证书签名请求文件,命令为:`openssl req -new -key rsa.key -out rsa.csr` ...

    一种可抵御量子计算机攻击的非对称加密及签名算法(vc)

    传统的非对称加密算法如RSA、DSA等在量子计算机面前存在安全隐患,因为量子计算机的计算能力远超经典计算机,能够快速破解基于数论难题的加密算法。针对这一问题,科研人员提出了一种新的非对称加密及签名算法,旨在...

    OpenSSL对称算法、哈希校验、非对称算法、证书管理、SSL安全

    非对称加密使用一对公钥和私钥,公钥可公开,私钥必须保密。发送者使用接收者的公钥加密数据,只有拥有对应私钥的接收者才能解密。这解决了对称加密的密钥分发问题,但非对称算法计算量大,速度较慢。 **证书管理**...

    openssl库源码,3.2.0版本

    1. **加密算法支持**:OpenSSL 支持多种加密算法,如对称加密(如 AES、DES、3DES)、非对称加密(RSA、DSA、ECC)以及哈希函数(MD5、SHA1、SHA256 等)。 2. **SSL/TLS 协议实现**:OpenSSL 实现了 SSLv2/v3 和 ...

    利用OpenSSL把导出的Key文本转化为RSA结构

    总的来说,通过OpenSSL将导出的Key文本转化为RSA结构,能够方便地在各种环境中使用非对称加密算法,为数据的安全传输提供了保障。在实际应用中,需要根据具体需求选择合适的安全策略,并注意遵循最佳实践,以确保...

    RSA.rar_C++_dsa_dsa 数字签名_rsa_rsa 签名

    **RSA算法** 是由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出的一种非对称加密算法。其核心原理是基于两个大素数的乘积难以分解的数学难题。RSA主要分为两部分:加密和解密。对于数字签名,RSA通常用于...

    ntpd非对称加密认证.docx

    非对称加密认证方案提供了比传统的基于密码的认证更高的安全性,因为它使用一对公钥和私钥进行身份验证,其中公钥是可以公开的,而私钥则需要保密。 在Ntpd中,`ntp-keygen`工具是生成密钥材料的核心工具。这个工具...

    Encrypt-Decrypt-with-OpenSSL---RSA:使用openssl进行数据加密和解密-RSA

    使用OpenSSL-RSA加密解密 什么是OpenSSL? OpenSSL是开放源代码库,可使用TLS(传输安全层)和SSL(安全套接字层)在网络上提供安全通信。 它支持许多加密算法AES,DSA,RSA,SHA1,SHA2,MD5。。有关更多信息 什么...

    openssl库详细介绍

    (4)输出反馈模式(Output Feedback Mode,OFB):输出反馈模式与 CFB 相似,惟一差别是,CFB 中密文填入加密过程下一阶段,而在 OFB 中,初始化向量加密过程的输入填入加密过程下一阶段。 2. 摘要算法 摘要算法...

    openssl-1.0.2h编译的win32的动态库和静态库

    2. 密钥管理:生成、存储和管理公钥和私钥,支持RSA、DSA、ECDSA等非对称加密算法。 3. 数字签名:通过非对称加密算法进行数字签名,验证数据的完整性和来源。 4. X.509证书:处理X.509数字证书,用于身份验证和证书...

    openssl win64 .exe 安装使用

    - 非对称加密:RSA、DSA(数字签名算法)、ECC(椭圆曲线加密)等,用于密钥交换和数字签名,安全性较高但计算量大。 - 哈希函数:MD5、SHA1、SHA256、SHA384、SHA512等,用于生成消息摘要,验证数据完整性。 ...

    openssl-windows64

    1. **加密算法**:OpenSSL 支持多种加密算法,包括对称加密(如AES、DES、3DES)和非对称加密(如RSA、DSA、ECC)。对称加密用于大量数据的快速加解密,而非对称加密则用于安全性更高的密钥交换和签名。 2. **TLS/...

Global site tag (gtag.js) - Google Analytics