Java实现密码生成器,生成密码明文和加密后的密码
2013-01-22 00:00
411 查看
这个类可以用来生成密码,明文和加密后的密码
import sun.misc.BASE64Encoder; import java.util.Random; import java.security.MessageDigest; public class PasswordCreator { public static class GeneratedPassword { private String clearText; private String encrypted; private GeneratedPassword(String clearText, String encrypted) { this.clearText = clearText; this.encrypted = encrypted; } public String getClearText() { return clearText; } public String getEncrypted() { return encrypted; } } //the below number 13,58,74 you can change any number for you company. public static GeneratedPassword generate(int length) { Random rnd = new Random(System.currentTimeMillis()); int letterLength = length - 1; byte[] buf = new byte[letterLength]; for (int i = 0; i < letterLength; ++i) { int idx = Math.abs(rnd.nextInt()) % 13; int offset = idx % 2 == 1 ? 58 : 74; int ch = offset + idx; buf[i] = (byte) ch; } String clearText = insertRandomNumber(buf); String encrypted = encryptUnsaltedSha1(clearText); return new GeneratedPassword(clearText, encrypted); } //the below number 9, you can change any number for you company. private static String insertRandomNumber(byte[] buf) { StringBuffer sb = new StringBuffer(new String(buf)); Random rnd = new Random(System.currentTimeMillis()); int number = Math.abs(rnd.nextInt()) % 9; int offset = Math.abs(rnd.nextInt()) % (sb.length()); sb.insert(offset, number); return sb.toString(); } private static String encryptUnsaltedSha1(String password) { try { String alg = "SHA-1"; MessageDigest digest = MessageDigest.getInstance(alg); digest.update(password.getBytes("UTF-8")); return new BASE64Encoder().encode(digest.digest()); } catch (Exception e) { throw new RuntimeException(e); } } //Other service can invoke this util like below: public static void main(String[] args) { GeneratedPassword password=generate(6); System.out.println(password.getClearText()); System.out.println(password.getEncrypted()); } /*the output like below: JNRR6A Yvp+P0KeFaBjamzJ3wW8yDUafko=*/ }
相关文章推荐
- 如何使用Java对密码进行加密 Java Sah加密方式帮你实现加密
- 加密算法(自己写)java自己给明文密码加密
- Java密码加密,UUID自动生成主键
- JAVA和PYTHON同时实现AES的加密解密操作---且生成的BASE62编码一致
- 使用Druid生成加密密码,实现mysql数据库连接用户密码加密解密
- java加密用户登录密码--不用MD5实现
- Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
- java明文密码三重加密方法
- MD5 JAVA用户密码加密实现
- 利用TEA算法实现加密密码文件生成与解密
- 使用异或进行简单的密码加密(JAVA实现)
- java实现字符串加密,登录密码加密
- .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文
- 使用异或进行简单的密码加密(JAVA实现)
- 使用异或进行简单的密码加密(JAVA实现)
- java代码实现对excel加密、解密(设置或去除打开密码)
- AES加密算法在java,AS,JS中的实现_密码等的加密互解
- AES加密算法在java,AS,JS中的实现_密码等的加密互解
- 用java实现MD5密码加密
- JAVA中使用MD5加密实现密码加密