src/main/java/com/nathan/crm/utils/UserIDBase64.java
(完整代码) 1KBpackage com.nathan.crm.utils;
import org.apache.commons.lang3.StringUtils;
import java.util.Base64;
public class UserIDBase64 {
/**
* userID解密
* @param encodedUserID 加密后的用户id
* @return
*/
public static Integer decoderUserID(String encodedUserID) {
if (StringUtils.isBlank(encodedUserID)) {
return null;
}
try {
String reversedString = new StringBuffer(encodedUserID).reverse().toString();
String base64String = reversedString.replaceAll("#", "=");
int userIDPos = base64String.indexOf("==") + 6;
String realBase64UserID = base64String.substring(userIDPos);
String base64Encoded = new String(Base64.getDecoder().decode(realBase64UserID.getBytes()));
return Integer.parseInt(base64Encoded);
} catch (Exception e) {
return null;
}
}
/**
* 用户id加密
* @param userID 用户id
* @return
*/
public static String encoderUserID(Integer userID){
String base64UserIDEncoded = Base64.getEncoder().encodeToString((userID + "").getBytes());
String currentStringBase64Encoded = Base64.getEncoder().encodeToString((System.currentTimeMillis() + "").getBytes());
String keyString = currentStringBase64Encoded
+ currentStringBase64Encoded.substring(4, 8) + base64UserIDEncoded;
byte[] codeBytes = keyString.getBytes();
byte[] ordedBytes = new byte[codeBytes.length];
for(int i=0; i<codeBytes.length; i++){
ordedBytes[i] = codeBytes[codeBytes.length-i-1];
}
return new String(ordedBytes).replaceAll("=", "#");
}
public static void main(String[] args) {
System.out.println(encoderUserID(20));
System.out.println(decoderUserID("#AjMzgjM##QN1AjN4gTOzgjM3UTM"));
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。