com.jfinal.ext.kit.RandomKit Maven / Gradle / Ivy
/**
* Copyright (c) 2018, Jobsz ([email protected]).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jfinal.ext.kit;
import java.util.Random;
import java.util.UUID;
import com.jfinal.kit.HashKit;
/**
* @author Jobsz
*
*/
final public class RandomKit {
public enum SMSCodeType{
Numbers,
CharAndNumbers,
}
/**
* 短信验证码,纯数字
* @param codeLen 验证码长度
* @return
*/
public static String smsAuthCode(int codeLen){
return smsAuthCode(codeLen, SMSCodeType.Numbers);
}
/**
* sms验证码
* @param codeLen
* @param type
* @return
*/
public static String smsAuthCode(int codeLen, SMSCodeType type){
String randomCode = "";
String strTable = type == SMSCodeType.Numbers ? "1234567890"
: "1234567890abcdefghijkmnpqrstuvwxyz";
int len = strTable.length();
boolean bDone = true;
do {
randomCode = "";
int count = 0;
for (int i = 0; i < codeLen; i++) {
double dblR = Math.random() * len;
int intR = (int) Math.floor(dblR);
char c = strTable.charAt(intR);
if (('0' <= c) && (c <= '9')) {
count++;
}
randomCode += strTable.charAt(intR);
}
if (count >= 2) {
bDone = false;
}
} while (bDone);
return randomCode.toUpperCase();
}
/**
* 随机范围内的数
* @param min
* @param max
* @return
*/
public static int random(int min, int max){
Random random = new Random();
return random.nextInt(max)%(max-min+1) + min;
}
/**
* 随机字符串:UUID方式
* @return
*/
public static String randomStr(){
return UUID.randomUUID().toString().replace("-", "");
}
/**
* 随机字符串再 md5:UUID方式
* @return
*/
public static String randomMD5Str(){
return HashKit.md5(randomStr());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy