Java加密解密简单实现_java 加解密-程序员宅基地

技术标签: Java  解密  java  string  byte  加密  algorithm  

加密算法有很多种:这里只大约列举几例:

1:消息摘要:(数字指纹):既对一个任意长度的一个数据块进行计算,产生一个唯一指纹。MD5/SHA1
发送给其他人你的信息和摘要,其他人用相同的加密方法得到摘要,最后进行比较摘要是否相同。

2:单匙密码体制:DES:比较简便高效,密钥简短,加解密速度快,破译极其困难,但其安全性依赖于密匙的安全性。
DES(Data Encryption Standard)是发明最早的最广泛使用的分组对称加密算法。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密

3:数字签名:就是信息发送者用其私钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
代表:DSA

4:非对称密匙密码体制(公匙体系):加密密匙不同于解密密匙,加密密匙公之于众,谁都可以使用,解密密匙只有解密人自己知道。代表:RSA

下面是对上面几个例子进行的简单实现:

用到的重要的类
javax.crypto.KeyGenerator
public final SecretKey generateKey()生成一个密钥
public static final KeyGenerator getInstance(String algorithm) 返回生成指定算法的秘密密钥的KeyGenerator对象。
javax.crypto 接口 SecretKey
javax.crypto.Cipher 此类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心
public final void init(int opmode,Key key)
public final byte[] doFinal(byte[] input) 按单部分操作加密或解密数据,或者结束一个多部分操作
java.security.KeyPairGenerator
static KeyPairGenerator getInstance(String algorithm)
回生成指定算法的 public/private 密钥对的 KeyPairGenerator 对象。
java.security.Signature
使用 Signature 对象签名数据或验证签名包括以下三个阶段:
1:初始化,使用
初始化验证签名的公钥(请参见 initVerify),或使用
初始化签署签名的私钥(也可以选择“安全随机数生成器”)initSign(PrivateKey)和initSign(PrivateKey, SecureRandom))。
2:更新
根据初始化类型,这可更新要签名或验证的字节。请参见 update 方法。
3:签署或验证所有更新字节的签名。请参见 sign 方法和 verify 方法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wang_zhou_jian/article/details/5635659

智能推荐

ios静态库笔记-程序员宅基地

文章浏览阅读49次。本身IOS的开发,只允许静态库或者Framework。下面就简单写一个静态库和一个调用静态库的例子。1.静态库工程的建立:Xcode New一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个Print这样的工程。2.工程建立我们添加很简单的"- (void..._xamarin linkwith -objc ios 静态库

pycharm打不开怎么解决_pycharm只能cmd打开-程序员宅基地

文章浏览阅读9.1k次,点赞5次,收藏6次。前天晚上突然发现pycharm打不开了,经过一天一夜各种尝试,终于打开了最终打开方案win+r, 在输入框输入pycharm,就打开了。接下来写我尝试的各种方法。_pycharm只能cmd打开

安卓第一阶段实训:基于存储卡的音乐播放器V06日志(周璐)_filter = new intentfilter("music");-程序员宅基地

文章浏览阅读142次。文章目录1,创建应用界面2,设置界面布局资源(activity_main.xml)3,设置界面布局资源(activity_splash_screen.xml)4,将相应的所需的图片资源放入指定的位置5,编写有关于按钮操作的xml文件6,播放模式按钮模板(custom_border.xml)7,创建动画相关模板(animator.xml)8,创建相应的子包以及相应的类9,编写启动界面类(SplashScreenActivity)10,编写主界面类(MainActivity)11,AndroidManifest_filter = new intentfilter("music");

vmware 虚拟机 分辨率、双向复制粘贴拖动、vmware tools灰色问题解决_虚拟机启用拖放功能是灰色的怎么回事-程序员宅基地

文章浏览阅读2.8k次。1.问题 安装vmware虚拟机,遇到很多问题,要进行配置。比如显示分辨率不对,不能双向复制粘贴等问题,都是没有安装vmware tools。然而在安装tools是发现选项为灰色或者vmware tools光盘点进去不对,这个问题后面我们一起解决。2.解决vmware tools选项灰色或光盘文件不对问题打开设置,选择使用物理驱动,自动检测,打开窗虚拟机就可以正常安装了。..._虚拟机启用拖放功能是灰色的怎么回事

小飞升值记——(15)_阵列信号处理及matlab实现 张小飞 陈华伟-程序员宅基地

文章浏览阅读252次。目录一:学习痕迹二:学习结语一:学习痕迹二:学习结语_阵列信号处理及matlab实现 张小飞 陈华伟

深入理解Mysql事务隔离级别与锁机制_insert 10 into test.user.account where id=10-程序员宅基地

文章浏览阅读50次。SMS_VALIDATION_CODE_CN_insert 10 into test.user.account where id=10

随便推点

python基础入门笔记_python基础入门学习笔记(Python环境搭建)-程序员宅基地

文章浏览阅读68次。Python学习第一篇。把之前学习的Python基础知识总结一下。一、认识Python首先我们得清楚这个:Python这个名字是从Monty Python借鉴过来的,而不是源于大家所知道的大蟒蛇的意思。我们为什么要学习Python呢?就我而言,我知道豆瓣在使用、重视Python,加上我想学习网页爬虫技术,所以,我要学习Python编程。另外在国外,Yahoo和Google都在使用Python。那么..._学习笔记内容包含python环境搭建、python语言基础知识、python控制结构、python常

“云原生”,为何而生?-程序员宅基地

文章浏览阅读547次。近来,“云原生”这个词被云计算从业者们反复的谈及,但对“云原生”的定义与理解各有不同。云原生(Cloud Native)的概念,由来自Pivotal的MattStine根..._云源生

LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DEST_n_archivelog 'log_archive_dest_2': log archive is no-程序员宅基地

文章浏览阅读2.3k次。LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DEST_n 只能取其一。当LOG_ARCHIVE_DEST设置为非空的时候,那LOG_ARCHIVE_DEST_n就不起作用。反之,如果LOG_ARCHIVE_DEST没有设置,则LOG_ARCHIVE_DEST_n的设置才能生效。如果两类参数均未设定,则系统在启动之后启用缺省值归档日志不能直接归档到磁带或者裸设备上。LOG_ARCH_archivelog 'log_archive_dest_2': log archive is not valid

Java-LeetCode刷题笔记_vals[i-1]=string.valueof(i);arrays.sort(vals);for(-程序员宅基地

文章浏览阅读257次。485-最大连续1的个数class Solution { public int findMaxConsecutiveOnes(int[] nums) { //输入数组 int maxCount = 0, count = 0; int n = nums.length; //得到数组长度 for (int i = 0; i < n; i++) { if (nums[i] == 1) { _vals[i-1]=string.valueof(i);arrays.sort(vals);for(string val:vals)

Dotween的一些封装_dotoween 方法封装-程序员宅基地

文章浏览阅读328次。/// <summary> /// 颜色 /// </summary> /// <param name="spriteRenderer"></param> /// <param name="color"></param> public void DoColor(SpriteRenderer spriteRenderer, Color color, Action action = null) .._dotoween 方法封装

版式文件 流式文件_2020年新的流式细胞术数据文件标准,FCS 3.2版本-程序员宅基地

文章浏览阅读2.5k次。流式细胞术数据文件标准于1984年发布,以促进流式细胞术数据分析软件与在不同类型的流式细胞术仪器上获取的数据的互操作性。该标准在1990年修订为FCS 2.0,在1997年修订为FCS 3.0,在2010年修订为FCS 3.1。2020年9月3日Spidlen J等人在Cytometry A杂志上提出了FCS 3.2,该修订版满足了一些新需求和建议,并结合了十年来整个细胞仪领域的进步。..._fcs 文件下载

推荐文章

热门文章

相关标签