㈠ java 調第三方介面一般都要生成隨機字元串後一起加密,請問隨機字元串的作用是什麼
token俗稱令牌。一般用於身份驗證。使用MD5或者sha-256
㈡ Java中怎樣產生隨機數和隨機字母
java產生隨機數和隨機字母,使用madom類,示例如下:
packagecom.qiu.lin.he;
publicclassCeShi{
publicstaticvoidmain(String[]args){
intstr1=0;
for(inti=0;i<25;i++){//你想生成幾個字元的,就把4改成幾,如果改成1,那就生成一個隨機字母.
str1=(char)(Math.random()*26);
}
System.out.println("輸出隨機生成的字元串"+str1);
Stringstr="";
for(inti=0;i<25;i++){//你想生成幾個字元的,就把4改成幾,如果改成1,那就生成一個隨機字母.
str=str+(char)(Math.random()*26+'A');
}
System.out.println("輸出隨機生成的字元串"+str);
}
}
運行結果如下:
㈢ java 輸入一個數字顯示隨機密碼(密碼可以有數字和大小寫字母)例如我輸入4 隨機就是4個密碼!請大家幫助
import java.util.Random;
import java.util.Scanner;
public class Zhi {
public static void main(String agrs[]) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
StringBuffer sb = new StringBuffer();
for(int i=0; i<num; i++) {
int a = Math.abs((new Random()).nextInt(57));//產生0~57的隨機數
if(a<=9){//將0~9轉為char的0~9
sb.append((char)(a+48));
}
else if(a<33){//將10~33轉為char的A~Z
sb.append((char)(a+55));
}
else{//將33~57轉為char的a~z
sb.append((char)(a+63));
}
}
System.out.println(sb.toString());
}
}
㈣ java中如何編寫輸出一組由大寫和數字組成的6個隨機驗證碼,字母O和I不能輸出
importjava.util.Random;
publicclassTest{
publicstaticvoidmain(String[]args){
charc='i';
StringBuffersb=newStringBuffer();
for(inti=0;i<6;i++){
inta=Math.abs((newRandom()).nextInt(57));//產生0~57的隨機數
if(a<=9){//將0~9轉為char的0~9
sb.append((char)(a+48));
}elseif(a<33){//將10~33轉為char的A~Z
if((a+55)==79||(a+55)==73){
sb.append((char)(a+63));
}else{
sb.append((char)(a+55));
}
}else{//將33~57轉為char的a~z
sb.append((char)(a+63));
}
}
System.out.println("隨機生成的6位密碼為:"+sb.toString());
}
}
㈤ Java隨機生成指定要求的密碼串
public class PassWord {
private static final int Int_WORD = 1;
private static final int STRING_WORD = 2;
private static final int MIX_WORD = 3;
public static String getPassWord(int style, int length) {
if (style == Int_WORD) {
return getIntRandom(length);
} else if (style == STRING_WORD) {
return getCharRandom(length);
} else if (style == MIX_WORD) {
return getMixRandom(length);
}
return getMixRandom(length);
}
private static String getIntRandom(int length) {
int[] array=new int[length];
StringBuilder str = new StringBuilder();
for(int i = 0; i < length; i ++){
array[i] = (int)(Math.random()*10);
str.append(array[i]);
}
return str.toString();
}
private static String getCharRandom(int length) {
int[] array=new int[length];
char[] chars = new char[length];
StringBuilder str = new StringBuilder();
for(int i = 0; i < length; i ++){
while (true) {
array[i] = (int)(Math.random()*1000);
if ((array[i] > 64 && array[i] < 91) ||
(array[i] > 96 && array[i] < 123)) break;
}
chars[i] = (char) array[i];
str.append(chars[i]);
}
return str.toString();
}
private static String getMixRandom(int length) {
int[] array=new int[length];
char[] chars = new char[length];
StringBuilder str = new StringBuilder();
int temp = 0;
for(int i = 0; i < length; i ++){
while (true) {
temp = (int)(Math.random()*1000);
if (temp < 128) break;
}
array[i] = temp;
chars[i] = (char) array[i];
str.append(chars[i]);
}
return str.toString();
}
}
㈥ 通過Java如何實現AES密碼演算法
1. AES加密字元串
public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");// 創建AES的Key生產者
kgen.init(128, new SecureRandom(password.getBytes()));// 利用用戶密碼作為隨機數初始化出
// 128位的key生產者
//加密沒關系,SecureRandom是生成安全隨機數序列,password.getBytes()是種子,只要種子相同,序列就一樣,所以解密只要有password就行
SecretKey secretKey = kgen.generateKey();// 根據用戶密碼,生成一個密鑰
byte[] enCodeFormat = secretKey.getEncoded();// 返回基本編碼格式的密鑰,如果此密鑰不支持編碼,則返回
// null。
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 轉換為AES專用密鑰
Cipher cipher = Cipher.getInstance("AES");// 創建密碼器
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化為加密模式的密碼器
byte[] result = cipher.doFinal(byteContent);// 加密
return result;
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
2. AES解密
public static byte[] decrypt(byte[] content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");// 創建AES的Key生產者
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();// 根據用戶密碼,生成一個密鑰
byte[] enCodeFormat = secretKey.getEncoded();// 返回基本編碼格式的密鑰
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 轉換為AES專用密鑰
Cipher cipher = Cipher.getInstance("AES");// 創建密碼器
cipher.init(Cipher.DECRYPT_MODE, key);// 初始化為解密模式的密碼器
byte[] result = cipher.doFinal(content);
return result; // 明文
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
㈦ JAVA隨機產生密碼,要求一位數字一個字母,一共9位,求教!
public static void main(String[] args) {
Random r=new Random();
String code="";
for(int i=0;i<9;++i)
{
if(i%2==0) //偶數位生產隨機整數
{
code=code+r.nextInt(10);
}
else//奇數產生隨機字母包括大小寫
{
int temp=r.nextInt(52);
char x=(char)(temp<26?temp+97:(temp%26)+65);
code+=x;
}
}
System.out.println(code);
}
㈧ java輸入兩個數,生成所給位數的隨機密碼串(密碼包含大寫,小寫,數字),如輸入兩個數,
1輸入字元串;2對輸入的字元串遍歷,並分別統計個數;3遍歷結束後輸出。代碼:intmain(){chars[100];intd,x,s,q,i;gets(s);d=x=s=q=0;for(i=0;s[i];i++)if(s[i]>='A'&&s[i]='a'&&s[i]='0'&&s[i]<='9')s++;elseq++;printf("%d%d%d%d\n",d,x,s,q);}
㈨ 用JAVA語言生成隨機密碼串;
public static String createPassword(int type,int passwordLength){
String pd="";
int math=0;
for(int i=0;i<passwordLength;i++){
math=(int)(Math. random()*10);
pd +=math;
}
}
這個是純數字的。字母和特殊符號的那些你可以定義一個數組來拼
㈩ java RandomStringUtils隨機數生成
生成隨機數的那個類使用同一個對象即可