前言 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互还是需要使用明文数据,所以查询返回我们还需要经过相应的解密才能返回给调用方. ps:日常开发中,我们要有一定的安全意识,对于密码,金融数据等敏感信息事实加密存储保护. 这个需求说起来不是很难,我们只需要在执行 sql 之前,提前将指定数据进行加密.执行 sql 之后,获取返回结果,再进行的相应的解密.稍微改造下原有代码,很快完成需求. 现有加密算法如 RSA2 ,AES 等,密文长度将会是明文好几倍.上线加解密方案…
根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元.控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令寄存器(IR ),指令译码器( ID )和操作控制器( OC ). 当程序被加载进内存后,指令就在内存中了,这个时候说的内存是独立于 CPU 外的主存设备,也就是 PC 机中…
摘要:JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息. 本文分享自华为云社区<一行Java代码实现两玩家交换装备[并发编程]>,作者:陈皮的JavaLib . 1 Exchanger 是什么 JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息.Exchanger 对象可理解为一个包含2个格子的容器,通过调用 exchanger 方法向其中的格子填充信息,当两个格子中的均被填充信息时,自动交换两个格子中的信息,然…
以下引自他人博客: 1. 需求背景我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如***.properties,具体的内容 #mysql的配置文件jdbc.url=jdbc:mysql://127.0.0.1:3306/testjdbc.username=rootjdbc.password=123456里面用明文的方式存储着数据库的敏感信息用户名username和密码password,这是不好的行为,容易产生安全问题.那我们如何实现加密存储呢? 2. 实现原理实现原…
main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法. 名字必须是main: 必须是public static void 类型的: 必须接收一个字符串数组的参数等等. public class Demo { public static void main(String[] args) { System.out.println(); System.out.println(" hello world!"); } } 输出结果: De…
今天甚是郁闷,项目马上要上线了,早上刚到公司打开MyEclipse 10.07提示过期提示,这对于用惯了破解软件的帝国用户的我原本以为小菜一碟. 于是到网上到处找破解软件,不用多长时间,Ok 破解成功.再一打开MyEclipse没什么异常,可到了部署项目时却发现总是出问题. 于是乎继续想办法破解,清理C盘和MyEclipse有关的文件,清注册表,重复重装,到最后也无果,卸载MyEclipse... 到网上下了个Eclipse,终于松了口气,决定再也不用My....可问题又来了,每次稍微修改jav…
package com.a.b; import java.io.*; public class Yu { public static void main(String[] args) throws IOException { // InputStream is=new InputStream(System.in); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader st = new BufferedR…
当前使用的是Linux系统,已经安装OpenSSL软件包. 一.使用OpenSSL来生成私钥和公钥1.执行命令openssl version -a 验证机器上已经安装openssl $ openssl version -a 2.生成私钥这条命令让openssl随机生成一份私钥,加密长度是1024位.加密长度是指理论上最大允许”被加密的信息“长度的限制,也就是明文的长度限制.随着这个参数的增大(比方说2048),允许的明文长度也会增加,但同时也会造成计算复杂度的极速增长.一般推荐的长度就是2048…
public class AesEncryptUtil { //使用AES-128-CBC加密模式,key需要为16位,key和iv可以相同! private static String KEY ="whshenke20180606"; private static String IV ="whshenke20180606"; /** * 加密方法 * @param data 要加密的数据 * @param key 加密key * @param iv 加密iv *…
结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元.控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令寄存器( IR ),指令译码器( ID )和操作控制器( OC ). 当程序被加载进内存后,指令就在内存中了,这个时候说的…