日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java生成密码_java生成密码生成 | 学步园

發布時間:2023/12/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成密码_java生成密码生成 | 学步园 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、根據當前日期生成MD5加密密碼

package com.test;

import java.security.MessageDigest;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Md5Test {

public void toMD5(String plainText) {

try {

//生成實現指定摘要

原文鏈接:http://www.cnblogs.com/xudong-bupt/archive/2013/05/10/3070899.html

二、生成密碼明文和加密后的密碼

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=*/

}

原文鏈接:http://my.oschina.net/forrest420/blog/103787

總結

以上是生活随笔為你收集整理的java生成密码_java生成密码生成 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。