今天就跟大家聊聊有关利用Java如何实现对敏感信息进行加密处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强>一、敏感信息加密处理我们要实现什么强>
系统往往需要将用户敏感信息进行加密,不同的敏感信息加密要求不同。
比如,密码的加密,我们往往不需要是可逆的。用户输入密码后,通过系统的加密规则,编码后直接比对加密存储的密码,获得比对结果即可证明用户登录信息合法性。
然后,有时我们为了防止被脱库导致的数据泄漏,不得不对一些敏感信息(比如:身份证号,手机号)进行加密。这样的数据不仅要求加密,还需要在展示及其他业务场景下完全显示,或者掩码显示,这就需要我们对加密的内容进行解密。
<强>二,敏感信息加密处理我做了些什么强>
近来,项目中为了实现这个需求,做了些简单的设计:
注:考虑到在维护生产数据时方便查询,这里使用aes加密方式,该加密方式同mysql的aes加密结果相同,故可在sql中直接使用十六进制及aes_encrypt函数进行查询;密盐可保存在配置文件中,
1。使用自定义注解,阿宝的每个类中需要加密及解密的字段可添加该注解
2。声明基类,并实现加密和解密方法,方法实现利用Java反射及自定义注解
3。所有需要用到加密及解密的实体对象,必须继承自基础类
4。实体类加密时调用加密方法,解密时调用解密方法,如此可实现对该对象中敏感数据的加密解密
<强>三,敏感信息加密实现强>
注释很清楚,先给对象设置身份证号,然后执行自加密方法,返回自己的引用,打印出来加密后该对象的json字符串;执行自解密方法,返回自己的引用,打印出来解密后该对象的json字符串。
地穴 | |——注释 | | - DecryptFiled | | - EncryptFiled | - - -地穴 | | - EncryptDecryptInterface | - - -域 | | - BaseInfo | | - SimpleDomain |——跑龙套 | | - MySqlUtils
/* * *由亮>/* * *由亮>/* * *由亮>/* * *由亮>/* * *由亮>公共类客户{ @Test 公共空白测试(){ SimpleDomain sd=new SimpleDomain();//要进行加密解密的实体类 sd.setId(“6029131988005021537“);//注入身份证号 System.out.println (JSON.toJSONString (sd.encryptSelf()));//执行自加密后输出 System.out.println (JSON.toJSONString (sd.decryptSelf()));//执行自解密后输出 } } 客户
看完上述内容,你们对利用Java如何实现对敏感信息进行加密处理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。