package cn.timer.api.utils; import java.io.UnsupportedEncodingException; //import org.apache.shiro.crypto.hash.SimpleHash; /** * * @ClassName: Encrypt * @Description: TODO(这里用一句话描述这个类的作用) * @author TZQ chess222_com * @date 2019年3月2日 下午12:31:49 * */ public class Encrypt { /* * 散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据, * 常见的散列算法如MD5、SHA等。一般进行散列时最好提供一个salt(盐),比如加密密码“admin”, * 产生的散列值是“21232f297a57a5a743894a0e4a801fc3”, 可以到一些md5解密网站很容易的通过散列值得到密码“admin”, * 即如果直接对密码进行散列相对来说破解更容易,此时我们可以加一些只有系统知道的干扰数据, * 如用户名和ID(即盐);这样散列的对象是“密码+用户名+ID”,这样生成的散列值相对来说更难破解。 */ // 高强度加密算法,不可逆 /** * * @Title: Encrypt * @Description: TODO(这里用一句话描述这个方法的作用) * @param * @param password * @param salt * @return */ // public static String md5(String password, String salt) { // // Object tokenCredentials = new SimpleHash("md5", password, salt, 2).toHex(); // return (String) tokenCredentials; // } public static String myEncode(String str) throws UnsupportedEncodingException { byte[] strBytes = str.getBytes("utf-8"); byte[] newStrByte = new byte[strBytes.length]; for (int i = 0; i < strBytes.length; i++) { newStrByte[i] = (byte) (strBytes[i] ^ 0x01); } return new String(newStrByte); } public static String myEncode1(String str) throws UnsupportedEncodingException { byte[] strBytes = str.getBytes("utf-8"); byte[] newStrByte = new byte[strBytes.length]; for (int i = 0; i < strBytes.length; i++) { newStrByte[i] = (byte) (strBytes[i] ^ 0x01); } return new String(newStrByte); } public static String myEncode2(Integer i) { char[] cs = String.valueOf(i).toCharArray(); String aString = ""; int i1 = 0; for (char c : cs) { i1 += c; } for (char c : cs) { i1 += c; } System.out.println(i1); return aString; } public static void main(String[] args) { char a = 49; int i = '1'; System.out.println(a); System.out.println(i); System.out.println(myEncode2(105000)); } }