自制32位加密(java版)
闲来无事,自己制作32位建议加密工具,我把自己的思路和大家分享下:
下载加密程序链接:https://download.csdn.net/download/qickcao/13125302

1、创建加密字典

char encrp[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

2、判断需要加密的密码长度,

int len = password.length();
if(len < 32){//TODO 补足32位
}else if(len == 32){//直接加密password = encrp(password);
}else{System.out.println("警告:需要加密的密码超出32位");password = null;
}

3、加密模块
根据简单的公式把密码中的单个字符转换成字典中的字符。

private static String encrp(String password){int encrpLength = encrp.length;//加密字典长度char temp;//临时字符,用来接收循环出来的字符int encrpIndex;//加密字典坐标,用来确定加密后的字符在字典的下标,并取出加密字符String returnString = "";for(int i=0;i<password.length();i++){temp = password.charAt(i);//确定该字符在加密库中的坐标:  [(字符在字符串的坐标+字符在Integer的坐标)*字符在加密字符库的坐标] % 加密库的长度encrpIndex = ((i+Integer.valueOf(temp))* ArrayUtil.getIndex(encrp, temp)) % encrpLength;//把对应的值取出来returnString += encrp[encrpIndex];}//返回return returnString;}

4、最主要的是在补足32位模块,最先的思路是直接在原密码后面补足,现在的密码一般用户都设置为8位,这样后面补24位,尾部很长一段都相同,这样做的加密效果不明显,因此Pass掉了这种方案。

修正后方案:把原密码分割成4块,这样每块应该有8个字符,然后不足8个字符的补成8个,

for(int i=0;i<4;i++){//分割成4段String tempStr = "";for(int j=0;j<divisionLength;j++){//取出4段的值char c1 = password.charAt(k);k++;tempStr += c1;}int needLength = 8-divisionLength;//需要补的长度char strLastChar = tempStr.charAt(tempStr.length()-1);//字符串最后一位字符int location = Integer.valueOf(strLastChar);//最后一个字符在库中的索引号,用他来判断是在前面补足还是在后面补足if(location%2==0){//索引号为偶数在后面补数for(int l=0;l<needLength;l++){//补足每段的长度为8位tempStr += ((l+divisionLength)*163%7);}}else{//索引号为奇数在前面补数String temp = "";for(int l=0;l<needLength;l++){//补足每段的长度为8位temp += ((l+divisionLength)*163%7);}temp += tempStr;tempStr = temp;}splicing += tempStr;}

5、用法演示:

package test;import util.MD5Util;public class TestMd5Util {public static void main(String[] args) {String password = "wef857879";password = MD5Util.to32Bit(password);System.out.println("加密后的密码为:"+password);System.out.println("加密后的密码长度为:"+password.length());}
}

6、演示结果:

写在最后: 我下载里面有完整代码链接:有空的话你也可以试一下,欢迎评论交流。

Java自制简易32位加密工具相关推荐

  1. md5加密 java原理_md5 32位 加密原理 Java实现md5加密

    md5 32位 加密原理 简单概括起来,MD5 算法的过程分为四步:处理原文,设置初始值,循环加工,拼接结果. 第一步:处理原文 首先,我们计算出原文长度(bit)对 512 求余的结果,如果不等于 ...

  2. 用JAVA编写MD5大写32位加密

    用JAVA编写的MD5加密技术,大写的32位加密 package test;import java.io.UnsupportedEncodingException;public class MD5Te ...

  3. 原创:MD5 32位加密软件

    网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密. 今天给大家送一个本人用c#简单编写的MD5 32位加密程序, ...

  4. MD5加密,16位加密,32位加密,Base64加密,解密

    首先,16位加密与32位加密的区别,在于16位加密就是在32位加密的字符串中取中间16位,即是第9位到24位 比如现在有密码 sys 32位加密后的字符串就是 36BCBB801F5052739AF8 ...

  5. java怎样生成32位全是整形的主键_你肯定会需要的分布式Id生成算法雪花算法(Java)...

    最近公司正好在做数据库迁移从oracle到mysql,因为之前oracle主键是使用的 SYS_GUID() 这个oracle提供的函数来生成全球唯一的标识符(原始值)由16个字节组成. 不过由于my ...

  6. PHP实现MD5加密(16位加密和32位加密)

    MD5加密是我们开发过程中很常用的一个加密方法,由于它的不可逆性所以经常被用来对密码加密.常用的加密方式例如"账号+特殊符号+密码"再经过MD5加密,这样就算加密后的密码被看到了, ...

  7. c# php md5 32位加密,C#实现将32位MD5摘要串转换为128位二进制字符串的方法

    本文实例讲述了C#实现将32位MD5摘要串转换为128位二进制字符串的方法.分享给大家供大家参考,具体如下: 将32为MD5摘要串转换为128位二进制字符串: /// /// 将字符串转成二进制 // ...

  8. java以32位运行,强制java applet以32位而不是64位JRE运行

    我有一个Java applet,设计在32位JDK(1.5)下.在新MacOS(10.7)上部署它时,它运行不正确 - 因为该系统默认首选64位JRE(有两种供选择,32和64位).如果首选顺序先更改 ...

  9. 由于超过32位java限制_Java 32位Xmx vs java 64位Xmx

    分配内存和分配地址空间有区别. Oracle JVM正在启动时分配地址空间以确保堆是连续的.这允许与堆一起使用某些优化. 如果分配失败,则Java将不会启动-如您所见.它不一定使用那么多的内存,而是前 ...

最新文章

  1. oracle坏块 戴明明,云和恩墨:基于PCIE 闪存卡的 Oracle 数据
  2. js一个典型的对象写法,推荐使用这种格式,用于处理图像的基本方法、
  3. Hibernate 笔记 HQL查询
  4. java静态代码块的作用域_java基础之面向对象
  5. Ext.Net学习笔记10:Ext.Net ComboBox用法
  6. 基于ARM IP的看门狗设计与功能验证
  7. IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat)
  8. 种子填充算法c语言代码实现,OpenGL绘图实例三之种子填充算法
  9. origin图上显示数据标签_Origin中如何将曲线上的数据显示出来?
  10. 助力运动:实时乒乓球视频分析
  11. oracle的lpad函数
  12. npm-deprecate
  13. 洛谷试炼场 动态规划TG.lv(2)
  14. 南京美食指南(完美篇)
  15. 火山安卓RSA加解密操作
  16. linux下下载基因组程序,从 NCBI 批量下载基因组的方法
  17. 美团 键盘大小写转换 最小敲击次数
  18. pytorch1.13启用caffe2
  19. FireFox安装广告净化器或其他三方插件
  20. [职场技巧第一期]面试前需弄明白的四个问题

热门文章

  1. 锐起无盘启动2100破解安装
  2. 全球价值链GVC总出口分解(2011-2014年)
  3. java程序输出电话号码_【Java】生成随机的手机号码并输出到文件
  4. buuctf rsa刷题记录(记几种类型的RSA攻击二)
  5. 自学Unity能找到工作吗?
  6. 自学Java半年,能找到工作嘛?
  7. 碳中和数据全集!碳排放、碳封存、碳排放权配额、碳交易、能源消费与二氧化碳排放
  8. 归并排序Java实现
  9. 边缘节点的需求分析和核心技术研究
  10. CloudSim Example1