最近遇到了一个上传身份证的需求, 担心用户身份证泄露,所以对用户身份证信息进行异或加密,网上的异或方式用固定的key加密, 即使拿到加密图片也很容易破解, 于是乎灵机一动,写下不容易被破解key的办法,分享给有类似诉求的朋友:
public class Demo {
public static void main(String[] args) throws Exception {
String source = "/home/xxx/develop/111.jpeg";
String target = "/home/xxx/develop/222.jpeg";
String decode = "/home/xxx/develop/333.jpeg";
encode(source, target);
encode(target, decode);
printHead(target, 32);
public static void encode(String source, String target) throws Exception {
int[] key = {5,4,3,2,1,1,2,3,4,5,6,7,8,9,1}; //随意设置
System.out.println("");
File inFile = new File(source);
File outFile = new File(target);
FileInputStream input = new FileInputStream(inFile);
FileOutputStream output = new FileOutputStream(outFile);
int i = 0;
int j = 0;
int content = 0;
while ((content = input.read()) != -1) {
if (i <= 32) { //为了跳过文件头
System.out.print(content + " ");
output.write(content);
} else {
int index = j % key.length;
output.write(content ^ key[index]);
//关闭资源
output.close();
input.close();
public static void printHead(String source, int size) throws Exception {
System.out.println("");
File inFile = new File(source);
FileInputStream input = new FileInputStream(inFile);
int i = 0;
int content = 0;
while ((content = input.read()) != -1 && i < size) {
System.out.print(content + " ");
//关闭资源
input.close();
敏感信息的传输都是需要进行
加密
,其中md5
加密
方式
应用较为普遍,我们在做三方数据测试的时候各种
加密
方式
都会遇到。现在用python也能实现md5、sha256、sm3,具体操作如下:
https://zhuanlan.zhihu.com/p/345802816
现在的
图片
都是上传到c d n或者其它第三方服务器上,通过一个url进行访问,非常的方便,方便的同时也带来了另外一个问题,隐私安全问题,比如:好莱坞隐私照片泄漏。
如何保证
图片
安全
如果发生客户隐私
图片
的泄漏,将是非常严重的事情,会使当事人遭受到骚扰、企业遭受到质疑,那么如何保证用户上传
图片
的安全将是一件值得重视的事情,本篇介绍一种
加密
方式
:
异或
加密
。
异或
的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1
两者相等为0,不等为1。
对于一个字符来说,都可以用二进制
public class Blowfish {
private static final int[] KP = { 0x243F6A88, 0x85A308D3, 0x13198A2E,
0x03707344, 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
0x452821E6, 0x38D01
系列博文项目已上传至guthub 传送门
Java
Web-SpringSecurity初认识 传送门
Java
Web-SpringSecurity在数据库中查询登陆用户 传送门
Java
Web-SpringSecurity自定义登陆页面 传送门
Java
Web-SpringSecurity实现需求-判断请求是否以html结尾 传送门
Java
Web-SpringSecurity自定义登陆配置 传...
330110200010198500 ------- 33**************00
410102201807248396 ------- 41**************96
encryptPaperNo (card) {
//
加密
身份证
号
let enCard = []
enCard.push(card[0])
enCard.push(card[1])
for (l
身份分层
加密
(Hierarchical Identity-Based Encryption,HIBE)是对属性
加密
(Identity Based Encryption,IBE)的一种改进方案,它是一种由层级结构定义的属性
加密
,并且拥有层级化的解密能力管理。区块链技术由于可以在无需第三方的情况下实现所有数据的信息公开透明、不可篡改、不可伪造等特性,在诸如数字政务、数字货币、金融资产交易结算等领域具有广阔的应用场景。很多区块链应用场景中,包括我们
文章目录金融实人认证实人认证整体介绍实人认证的产品架构意愿性表达证件OCR证件NFC分级活体
图片
内容标签识别实人认证的产品优势基于百度AI的
身份证
图片
批量OCR识别运行环境注册百度智能云调用鉴权接口获取token用python调用API接口将
身份证
信息写入excel文件运行结果
本周的前沿课程由微众银行的钟伟老师、廖梓雄老师和周智老师带来了《金融科技 SaaS 产品》的分享。本次学习报告笔者将分两部分进行:
对金融实人认证部分以关键词或者提出问题的形式进行简略总结。
就其中笔者感兴趣的
身份证
OCR内容,
function formatidcard(idcard) {
// 15位
身份证
举例:130503 670401 001的含义; 13为河北,05为邢台,03为桥西区,出 生日期为1967年4月1日,顺序号为001。
if(idcard.length == 15){
return idcard.replace(/(\d{6})\d{6}(\d{3})/, "$1******$2");