RSA、MD5加密解密算法全套解析安装教程

这篇具有很好参考价值的文章主要介绍了RSA、MD5加密解密算法全套解析安装教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一部分介绍加密解密算法,
第二部分介绍我小组成功应用的RSA、MD5两种加密解密算法,以及心得体会。
1、加密解密算法介绍
应用的开发中安全很重要,所以信息加密技术显得尤为重要。我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障。我们组主要对一下三种常见的加密方式进行介绍。

1.1对称加密
简介:需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。
加密解密过程:明文->密钥加密->密文,密文->密钥解密->明文。
示例:
密钥:X
加密算法:每个字符+X
明文:Hello
密钥为 1时加密结果:Ifmmp
密钥为 2时加密结果:Jgnnq
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
经典加密算法有三种:

  1. DES:数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解)
  2. 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。(缺点:要维护3个密钥,大大增加了维护成本)
  3. AES:高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。
    加密模式:
    ECB:电子密码本,就是每个块都是独立加密
    RSA、MD5加密解密算法全套解析安装教程

CBC:密码块链,使用一个密钥和一个初始化向量(IV)对数据执行加密转换
RSA、MD5加密解密算法全套解析安装教程

只要是对称加密都有 ECB和 CBC模式,加密模式是加密过程对独立数据块的处理。对于较长的明文进行加密需要进行分块加密,在实际开发中,推荐使用CBC的,ECB的要少用。
1.2非对称加密
简介:

  1. 对称加密算法又称现代加密算法。
  2. 非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
  3. 非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey)
  4. 公开密钥和私有密钥是一对

如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
常用算法:RSA、DSA(数字签名算法)、ECDSA(椭圆曲线签名算法)
特点:
算法强度复杂,安全性依赖于算法与密钥。
加密解密速度慢。
与对称加密算法的对比:
对称加密只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。
非对称加密有两种密钥,其中一个是公开的。
应用场景:
一、非对称算法在手机短信传输中的使用
二、非对称算法在视频会议中的使用
1.3哈希HASH
MD5加密的特点:
1、不可逆运算
2、对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)
3、对相同的数据加密,得到的结果是一样的(也就是复制)。
4、抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.
5、弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的.
6、强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的
MD5 应用:
一致性验证:MD5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,就像每个人都有自己独一无二的指纹,MD5对任何文件产生一个独一无二的数字指纹。

加“盐”操作
“盐”就是一串比较复杂的字符串。加盐的目的是加强加密的复杂度,这么破解起来就更加麻烦,当然这个“盐”越长越复杂,加密后破解起来就越麻烦。

2、加密解密应用于实训项目

我小组实现了MD5加密解密、java非对称加密RSA和js非对称加密三种方式。本文档主要对RSA非对称加密方式进行详细介绍,对MD5进行简单介绍。

1、首先介绍java非对称RSA加密方式,后端加密。(含操作截图)
代码如下所示(代码来自老师学习通提供链接,稍作调试即可)文章来源地址https://www.toymoban.com/news/detail-487062.html

package com.atguigu.Util;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.Map;
public class RSAEncrypt {
   
	private static Map<Integer, String> keyMap = new HashMap<Integer, String>();  //用于封装随机产生的公钥与私钥
	public static String  R(String plainText) throws Exception {
   
		genKeyPair();

到了这里,关于RSA、MD5加密解密算法全套解析安装教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java代码实现RSA算法加密解密文件功能

    底层算法不做赘述,想要了解自行百度。 RSA属于非对称加密,非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密: 签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份

    2024年02月12日
    浏览(38)
  • C语言中的 RSA加密和解密算法: 深度探索与实现

    RSA加密算法是一种非对称加密算法,即公开密钥加密,私有密钥解密。在公开密钥加密和私有密钥解密的过程中,密钥是不同的,这是与其他加密算法的主要区别。RSA算法的安全性依赖于大数分解,随着计算机的发展,对于大数的分解能力越来越强,RSA算法的密钥长度也在不

    2024年02月03日
    浏览(40)
  • 从加密到签名:如何使用Java实现高效、安全的RSA加解密算法?

    目录 1. 接下来让小编给您们编写实现代码!请躺好 ☺ 1.1 配置application.yml文件 1.2 RSA算法签名工具类 1.3  RSA算法生成签名以及效验签名测试 1.4 RSA算法生成公钥私钥、加密、解密工具类 1.5 RSA算法加解密测试 我们为什么要使用RSA算法来进行加解密?  RSA 加密算法是一种非对

    2024年02月12日
    浏览(41)
  • RSA双向加解密(公钥加密-私钥解密;私钥加密-公钥解密)

            非对称加密算法中,提供一个公钥一个私钥。一般情况下,采用公钥加密、私钥解密的方式。         假设有这样一个场景:服务A与服务B需要通信,通信内容为了安全需要进行加密传输,并且服务A与服务B不能互相持有对方的钥匙。         我首先想到的是

    2024年02月11日
    浏览(42)
  • 【RSA】RSA加密、解密、签名与验证

    最近要做 iOS SDK 的联网授权,涉及到数据安全验证,因此想到使用 RSA 进行签名和验证。 授权主要流程如下: 1、客户方前往我方开放平台注册授权,得到 AppId 和 AppSecret 。 2、客户方集成 SDK ,调用 Register 接口传入 AppId 和 AppSecret 。 3、 SDK 将 AppId 和客户端平台相关信息提交

    2023年04月08日
    浏览(36)
  • Python RSA加密解密

    一、RSA加密算法 RSA加密算法是一种非对称加密算法,加密的秘钥是由公钥和私钥两部分组成秘钥对,公钥用来加密消息,私钥用来解密消息,公钥是公开的,给对方进行加密,私钥则是用户自己保留,用来对加密的数据进行解密。 公钥pem文件格式:以-----BEGIN PUBLIC KEY-----标记

    2024年02月10日
    浏览(36)
  • RSA加密/解密

    1.1、RSA算法介绍 RSA加密算法是一种可逆的非对称加密算法,即RSA加密时候用的密钥(公钥)和RSA解密时用的密钥(私钥)不是同一把。基本原理是将两个很大的质数相乘很容易得到乘积,但是该乘积分解质因数却很困难。RSA算法被广泛的用于加密解密和RSA签名/验证等领域。

    2024年02月06日
    浏览(37)
  • RSA加密,解密,加签及验签

    目录 1.说明 2.加密和加签的区别 3.后端加密,解密,加签及验签示例 4.前端加密,解密,加签及验签示例 5.前端加密,后端解密,前端加签,后端验签 6.注意事项 1.说明 RSA算法是一种非对称加密算法,与对称加密算法不同的是,RSA算法有两个不同的密钥,一个是公钥,一个是私钥

    2024年02月20日
    浏览(41)
  • 使用非对称加密(RSA) 实现前端加密后端解密

    数据加密方式有: 单向加密、对称加密、非对称加密、加密盐、散列函数、数字签名。 1、单向加密 单向加密通过对数据进行摘要计算生成密文,密文不可逆推还原。只能加密,不能解密,常用于提取数据的指纹信息以此来验证数据的完整性。但是会引发雪崩效应(雪崩效应

    2024年02月08日
    浏览(45)
  • RSA之前端加密后端解密

    RSA加密解密方式有: (1)公钥加密,私钥解密; (2)私钥加密,公钥解密; 此文章中以下我使用的是 前端公钥加密,后端私钥解密 ; http://web.chacuo.net/netrsakeypair 生成对应的公钥和私钥 前端加密js文件 : 链接: https://pan.baidu.com/s/1NIMayTcmjbMOf7BqPhPQoA 提取码: t7an 下载js文件并

    2024年02月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包