自己加密并解密数据
来源:互联网 发布:linux 网站密码破解 编辑:程序博客网 时间:2024/06/10 14:09
// 瞎玩的,莫较真。。 //其实是因为不懂啊,才瞎做了一个 public static void main(String[] args) { /* 明文:[4, 5, 6, 7, 12, 15] 秘钥:[6, 6, 6, 7, 7, 7] 密文:[9, 0, 1, 2, 7, 0] [(明文数据 - 1)+ 64] / 10 ,取商去余数 --> 秘钥 (明文数据 + 5) % 10 ,-->密文 */ jiami(); int key[] = {6,6,6,7,7,7}; int miwen[] = {9,0,1,2,7,0}; jiemi(key, miwen); } // 加密算法 static void jiami() { int yuanwen[] = {4,5,6,7,12,15}; int key[] = new int[yuanwen.length]; int miwen[] = new int[yuanwen.length]; // 产生秘钥 for(int i = 0; i < yuanwen.length; i++) { key[i] = ((yuanwen[i] - 1) + 64) / 10; miwen[i] = (yuanwen[i] + 5) % 10; } System.out.println("明文:"+Arrays.toString(yuanwen)); System.out.println("秘钥:"+Arrays.toString(key)); System.out.println("密文:"+Arrays.toString(miwen)); } // 解密算法 /**计算秘钥时得出的"余数"和 计算密文时得到的"余数"差2个单位(数字在一个圈上)*/ /**根据密文得出计算秘钥时产生的小数部分,在通过数学计算得出明文数据*/ static void jiemi(int key[], int miwen[]) { int cricle[] = new int[]{0,1,2,3,4,5,6,7,8,9}; int yuanwen[] = new int[miwen.length]; // 保存秘钥的小数位 int point[] = new int[key.length]; for(int i = 0; i < miwen.length; i++) { // 10个数循环 if(miwen[i] == 0) { point[i] = cricle[8]; } else if(miwen[i] == 1) { point[i] = cricle[9]; } else { point[i] = cricle[(miwen[i] - 2)]; } } for(int i = 0; i < yuanwen.length; i++) { yuanwen[i] = (key[i] * 10) + point[i] - 64 + 1; } System.out.println("解密出来的明文是:"+Arrays.toString(yuanwen)); }
阅读全文
0 0
- 自己加密并解密数据
- 数据加密与解密
- 数据加密与解密
- 数据加密与解密
- 数据加密和解密
- 数据加密解密库
- 数据加密和解密
- 数据加密解密类
- 数据加密与解密
- 数据加密解密
- php数据加密解密
- 数据加密和解密
- 数据加密和解密
- dbms_obfuscation_toolkit(数据加密解密)
- RSA 数据加密解密
- oralce 数据加密、解密
- SQL SERVER2005加密解密数据
- C#数据加密与解密
- poj3617 生成字典序最小字符串
- BZOJ4384: [POI2015]Trzy wieże 记忆化搜索
- 【POJ 1915】Knight Moves
- SpringMVC 配置定时执行任务
- Linux实战问题解决方案(1):Could not get lock
- 自己加密并解密数据
- 今天新学,通过Nutz来对数据库表格进行增删改查。更加简便。
- jvm原理
- 串行和并行与异步和同步的思考
- 629. K Inverse Pairs Array 自制答案
- HTML/CSS快速入门与提高
- 组合数【模板】
- Android系统定制源码修改
- ubuntu循环登录 login loop Nvidia GPU GTX CUDA