Java实现文件的RSA和DES加密算法
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
1 对称加密算法
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
DES(Data Encryption Standard): 数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES): 是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard): 高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
2 对称算法
常见的非对称加密算法如下:
RSA: 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
DSA(Digital Signature Algorithm): 数字签名算法,是一种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography): 椭圆曲线密码编码学。
3 加密算法的选择
前面简单介绍了各种对称和非对称加密算法,那我们在实际使用的过程中究竟该使用哪一种比较好呢?
我们应该根据自己的使用特点来确定:
由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
对称加密算法不能实现签名,因此签名只能非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择。
一般来说,RSA 建议采用 1024位 的数字,ECC 建议采用 160位,AES 采用 128位 即可。
转载于:https://www.cnblogs.com/AloneSword/p/3320155.html
Java实现文件的RSA和DES加密算法相关推荐
- MD5、RSA、DES加密算法原理解析
文章转自:http://www.iplaysoft.com/encrypt-arithmetic.html MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计 ...
- JS 与 JAVA 跨语言实现 RSA 和 AES加密算法
简介: 开发中为了数据的安全性使用加密算法对数据进行加密是一种很常见的情况,但就一种语言来说,直接使用提供的相应的库进行少许封装是一件很容易的事.但是在一些情况下我们可能需要跨语言来实现,比如前后端分 ...
- DES、AES、RSA等常用加密算法介绍与比较
文本先简单介绍常用的加密算法,后面将逐步推送每个加密算法的加密原理与应用及java实现方式. 加密算法分对称加密和非对称算法,其中对称加密算法的加密与解密密钥相同,非对称加密算法的加密密钥与解密密钥不 ...
- 加密算法—MD5、RSA、DES
最近因为要做一个加密的功能,简单了解了一下加密算法,现在比较常用的有三个加密算法MD5加密算法.RSA加密算法.DES加密算法. MD5加密算法 定义:MD5算法是将任意长度的&q ...
- CBC模式的DES加密算法(加密字符串、加密文件)
a) 所有协议数据采用标准的CBC模式的DES加密算法: b) 密钥长度为8位,可以为空(为空时,默认是8个0) c) 所有协议数据采用8位初始向量(VI)做互斥运算 d) 所有协议数据的明文需要在尾 ...
- java处理加密文件---实现RSA算法
1 RSA算法的原理如下: 1.1原理 假设我们需要将信息从机器A传到机器B,首先由机器B随机确定一个Key,我们称之为密匙private_key,将这个可KEY始终保存在机器B中而不发出 ...
- java des 加密 单倍长_明明白白使用DES加密算法
DES加密算法在很多行业都有着非常广泛的应用,对于初学者,开始很容易被ECB.CBC以及计算MAC搞得困惑不已,下面我将一一介绍这几者之间的关系,希望对新人有帮助.为了易于表述,下面所有的密钥及数据都 ...
- 算法科普:神秘的 DES 加密算法
1 前言 DES 算法是一种常见的分组加密算法,由IBM公司在1971年提出.DES 算法是分组加密算法的典型代表,同时也是应用最为广泛的对称加密算法.本文将详细讲述DES 的原理以及实现过程. 1. ...
- java/php/c#版rsa签名以及java验签实现--转
在开放平台领域,需要给isv提供sdk,签名是Sdk中需要提供的功能之一.由于isv使用的开发语言不是单一的,因此sdk需要提供多种语言的版本.譬如java.php.c#.另外,在电子商务尤其是支付领 ...
最新文章
- WebAssembly:面向Web的通用二进制和文本格式
- python 添加类属性
- 王者荣耀用什么开发引擎做的?
- Linux文本处理命令:cut grep awk sed printf
- php error_get_last(),PHP捕获异常register_shutdown_function和error_get_last的使用
- mybatis sql标签_【1039期】Mybatis面试18问,你想知道的都在这里了!
- 【转】通用sqlserver分页存储过程
- Exchange的AutoDiscover服务
- vs2005手机开发环境的配置
- 仿射变换和射影变换、等距变换、相似变换
- go语言中函数与方法重要的区别:
- 【从零开始学架构-李运华】06|复杂地来源:可扩展性
- Java定时任务自动调用方法
- linux取ip地址命令,linux下命令取IP地址的多种方法
- linux下c 开发 腾讯视频播放器,调用腾讯视频播放器API代码
- 点餐App火爆背后的冷思考
- PHP去掉二维数组中某个元素重复的一维数组
- 机器学习面试题总结(转)
- 个人编译移动内核时遇到的一些问题报错及处理方法【不定时更新2021.1.3】
- linux 图片编辑 java_ImageJ For Linux x64(免费开源图片编辑软件)V1.49v官方版下载 - 下载吧...