㈠ 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随机数生成
生成随机数的那个类使用同一个对象即可