12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package com.caimei.utils;
- /**
- * token编码工具类
- *
- * @author ouyangjun
- */
- public class TokenEncryptUtils {
- // 编码密码,可自定义
- private static final String ENCODED_PASSWORD = "ouyangjun";
- /**
- * 编码
- *
- * @param str
- * @return
- */
- public static String encoded(String str) {
- return strToHex(encodedString(str, ENCODED_PASSWORD));
- }
- /**
- * 转换
- *
- * @param str
- * @param password
- * @return
- */
- private static String encodedString(String str, String password) {
- char[] pwd = password.toCharArray();
- int pwdLen = pwd.length;
- char[] strArray = str.toCharArray();
- for (int i = 0; i < strArray.length; i++) {
- strArray[i] = (char) (strArray[i] ^ pwd[i % pwdLen] ^ pwdLen);
- }
- return new String(strArray);
- }
- private static String strToHex(String s) {
- return bytesToHexStr(s.getBytes());
- }
- private static String bytesToHexStr(byte[] bytesArray) {
- StringBuilder builder = new StringBuilder();
- String hexStr;
- for (byte bt : bytesArray) {
- hexStr = Integer.toHexString(bt & 0xFF);
- if (hexStr.length() == 1) {
- builder.append("0");
- builder.append(hexStr);
- } else {
- builder.append(hexStr);
- }
- }
- return builder.toString();
- }
- /**
- * 解码
- *
- * @param str
- * @return
- */
- public static String decoded(String str) {
- String hexStr = null;
- try {
- hexStr = hexStrToStr(str);
- } catch (Exception e) {
- e.printStackTrace();
- }
- if (hexStr != null) {
- hexStr = encodedString(hexStr, ENCODED_PASSWORD);
- }
- return hexStr;
- }
- private static String hexStrToStr(String hexStr) {
- return new String(hexStrToBytes(hexStr));
- }
- private static byte[] hexStrToBytes(String hexStr) {
- String hex;
- int val;
- byte[] btHexStr = new byte[hexStr.length() / 2];
- for (int i = 0; i < btHexStr.length; i++) {
- hex = hexStr.substring(2 * i, 2 * i + 2);
- val = Integer.valueOf(hex, 16);
- btHexStr[i] = (byte) val;
- }
- return btHexStr;
- }
- }
|