当前位置: 首页 > news >正文

常见加密算法附JAVA代码案例

1、对称加密算法(AES、DES、3DES)

对称加密算法是指加密和解密采用相同的密钥,是可逆的(即可解密)。

AES加密算法是密码学中的高级加密标准,采用的是对称分组密码体制,密钥长度的最少支持为128。AES加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界使用。

AES数学原理详解:AES加密 - block2016 - 博客园

优点:加密速度快

缺点:密钥的传递和保存是一个问题,参与加密和解密的双方使用的密钥是一样的,这样密钥就很容易泄露。

2、非对称加密算法(RSA、DSA、ECC)也叫公钥加密

非对称加密算法是指加密和解密采用不同的密钥(公钥和私钥),因此非对称加密也叫公钥加密,是可逆的(即可解密)。公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、离散对数问题类、椭圆曲线类。

RSA加密算法是基于一个十分简单的数论事实:将两个大素数(也就是质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,例如:17、19、23、29、31、37、41等)相乘十分容易,但是想要对其乘积进行因式分解极其困难,因此可以将乘积公开作为加密密钥。虽然RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击至今未被完全攻破。 

RSA公私钥生成流程

  1. 随机找两个素数P和Q,P与Q越大,越安全。(例如:61和53)

  2. 计算p和q的乘积n。(n=61×53=3233,n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。)

  3. 计算 n 的欧拉函数φ(n)。(根据公式φ(n)=(p-1)(q-1)算出φ(3233)等于60×52,即3120)

  4. 随机选择一个整数e,条件是1<e<φ(n),且e与φ(n) 互质。(条件是1<e<φ(n),且e与φ(n) 互质。1到3120之间,随机选择了17。)

  5. 有一个整数d,可以使得ed 除以φ(n) 的余数为 1。(ed ≡ 1 (mod φ(n)),即17*2753 mode 3120=1)

  6. 将n和e封装成公钥,n和d封装成私钥。(n=3233,e=17,d=2753,所以公钥就是:3233,17,私钥就是:3233, 2753。)

RSA加密

首先对明文进行比特串分组,使得每个分组对应的十进制数小于n,然后依次对每个分组m做一次加密,所有分组的密文构成的序列就是原始消息的加密结果,即m满足0<=m<n,则加密算法为:c=m^e mod n; c为密文,且0<=c<n。

欧拉函数

一.什么是欧拉函数
欧拉函数就是指:对于一个正整数n,小于或等于n的正整数中与n互质的正整数个数(


http://www.mrgr.cn/news/82881.html

相关文章:

  • 深度学习知识点:RNN
  • 后端Java开发:第十一天
  • 金融租赁系统助力行业转型与升级的创新之路
  • Flutter Web 选取并上传图片
  • 基于SpringBoot的斯诺克球馆预约购票管理系统
  • 我用Ai学Android Jetpack Compose之TextField
  • 【Javascript Day1】javascript基础
  • 《数据结构》期末考试测试题【中】
  • 最好用的图文识别OCR -- PaddleOCR(1) 快速集成
  • 信息科技伦理与道德2:研究方法
  • 安卓cpu调度优化
  • 【C语言程序设计——选择结构程序设计】求一元二次方程的根(头歌实践教学平台习题)【合集】
  • 【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
  • 25年01月HarmonyOS应用基础认证最新题库
  • 【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
  • docker 基本使用
  • 排序算法的实现(插入,希尔,选择,冒泡,堆排,快排)
  • 分布式ID生成-雪花算法实现无状态
  • 【C++数据结构——图】最小生成树(头歌实践教学平台习题) 【合集】
  • Kafka集群安装
  • 【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
  • 【Vue.js 组件化】高效组件管理与自动化实践指南
  • oracle jdk17新版变回OTN 商用收费了
  • 期末概率论总结提纲(仅适用于本校,看文中说明)
  • 【C++数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】
  • Linux查看服务器日志