import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; import org.apache.commons.codec.StringEncoder; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; public class EncodingUtil { private static char[] m = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; /** * * enc(ISO-8859-1)转UTF-8 * @param s * @param enc:ISO-8859-1 * @return */ public static String toUTF8(String s,String enc){ if (s==null) { return null; } Charset charset = Charset.forName(enc); CharsetEncoder ce = charset.newEncoder(); if (ce.canEncode(s)) { try { String t = new String(s.getBytes(enc),"UTF-8"); return t; } catch (UnsupportedEncodingException e) { e.printStackTrace(); return s; } }else{ return s; } } /** * base64加密 * @param text * @return */ public static String encodeBase64(String text) { byte[] b = text.getBytes(); Base64 base64 = new Base64(); String s = new String(base64.encode(b)); return s; } /** * base64解密 * @param text * @return */ public static String decodeBase64(String encodeStr) { byte[] b = encodeStr.getBytes(); Base64 base64 = new Base64(); String s = new String(base64.decode(b)); return s; } /** * MD5加密 * @param text * @return */ public static String toMD5(String text){ return DigestUtils.md5Hex(text); } /** * SHA加密 * @param text * @return */ public static String toSHA(String text){ // DigestUtils.sha256Hex(text); // DigestUtils.sha384Hex(text); // DigestUtils.sha512Hex(text); return DigestUtils.shaHex(text); } /** * 位移加密char * @param c * @param move * @return */ private static int encodeMove(char c,int move){ int index = -1; int i = c; if (i>47&&i<58) {//0-9 index = i-48; // System.out.println(c+"--"+m[i-48]); }else if (i>64&&i<91) {//A-Z index = i-55; // System.out.println(c+"--"+m[i-55]); }else if (i>96&&i<123) {//a-z index = i-61; // System.out.println(c+"--"+m[i-61]); }else { return -1; } if (index>-1) {//肯定执行 int a = index+move; int b = a%62; return b; } return -1; } /** * 位移解密char * @param c * @param move * @return */ private static int decodeMove(char c,int move){ int index = -1; int i = c; if (i>47&&i<58) {//0-9 index = i-48; // System.out.println(c+"--"+m[i-48]); }else if (i>64&&i<91) {//A-Z index = i-55; // System.out.println(c+"--"+m[i-55]); }else if (i>96&&i<123) {//a-z index = i-61; // System.out.println(c+"--"+m[i-61]); }else { return -1; } if (index>-1) {//肯定执行 int a = 62+index-move; int b = a%62; return b; } return -1; } /** * 位移加密 * @param text * @param count:位移距离 */ public static String encode(String text,int count){ char[]cs = text.toCharArray(); StringBuffer sb = new StringBuffer(); for (char c : cs) { int i = encodeMove(c, count); char a = m[i]; sb.append(a); } return sb.toString(); } /** * 位移解密 * @param text * @param count * @return */ public static String decode(String text,int count){ char[]cs = text.toCharArray(); StringBuffer sb = new StringBuffer(); for (char c : cs) { int i = decodeMove(c, count); char a = m[i]; sb.append(a); } return sb.toString(); } public static void main(String[] args) { // System.out.println(toUTF8("æ²¹", "iso-8859-1")); // System.out.println(decodeBase64(encodeBase64("中国"))); // System.out.println(new String(DigestUtils.md5Hex("123456"))); System.out.println((int)'0');//48-48=0 System.out.println((int)'A');//65-10=55 System.out.println((int)'Z');// System.out.println((int)'a');//97-36=61 System.out.println((int)'z');// String t = "adfs345678190AZGHJHafsffz"; char[]cs = t.toCharArray(); StringBuffer sb = new StringBuffer(); for (char c : cs) { // int i = c; // if (i>47&&i<58) { // System.out.println(c+"--"+m[i-48]); // }else if (i>64&&i<91) { // System.out.println(c+"--"+m[i-55]); // }else if (i>96&&i<123) { // System.out.println(c+"--"+m[i-61]); // } // System.out.println(c+"--"+m[moveEncode(c, 1)]+"--"+m[moveDecode(m[moveEncode(c, 1)], 1)]); } System.out.println(decode(encode("shiu76582hrhuhHFDHKJS", 2),2)); // System.out.println(-2%10); } }
相关推荐
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
本文将详细介绍C#编程语言中常用的三种加密解密算法:DES、RSA和TripleDES。 首先,我们来了解一下基本的加密概念。加密是将明文数据转换为看似随机的密文,以防止未经授权的访问;解密则是将密文恢复为原始明文的...
自定义加密解密类通常是为了提供更方便的接口,或者实现特定的加密需求。此类可能包含各种加密方法,如使用预设密钥进行AES加密,或者实现自定义的加密算法。在给定的描述中,类的构造函数接收密钥,这意味着它可能...
用于加密解密的操作类。
### VB AES加密解密类详解 #### 概述 标题为“VB AES加密解密类”的模块,旨在提供一种在Visual Basic(VB)环境中实现高级加密标准(AES)加密和解密功能的方法。AES是一种对称加密算法,广泛应用于数据保护、...
**Qt DES_ECB 加密解密类** 在IT领域,数据安全是至关重要的,而加密技术就是保护数据安全的一种常用手段。DES(Data Encryption Standard)是一种古老的对称加密算法,虽然现在已被更强大的AES(Advanced ...
【ASP.NET实现DES加密解密类】的知识点详解 在ASP.NET中,有时我们需要对敏感数据进行加密处理,以确保其在传输或存储时的安全性。DES(Data Encryption Standard)是一种常用的对称加密算法,适合对小量数据进行...
这里我们将讨论一些常见的加密库和函数,以及如何在实际项目中创建自定义加密解密类。 1. **基础加密函数**: - **md5()**:提供128位散列值,但不适用于加密,只适合做数据校验。 - **sha1()**:与md5类似,提供...
标题中的"php支持中英文的加密解密类"很可能就是一个实现了这种功能的类文件,它能够对包含中文和英文的数据进行加解密操作。 在描述中提到的"不过最好把文档编码设置为utf-8",这是因为UTF-8是目前最广泛使用的多...
这个名为“功能强大的php加密解密类.zip”的资源提供了一个PHP类库,专门用于加密和解密数据。这个类库可以帮助开发者确保数据在传输过程中的安全性,防止未授权访问和数据泄露。 在PHP中,加密解密通常涉及两种...
C#的字符串加密码类,DES加密解密类 DESEncrypt 简单实用,直接导入。
Unity 工具类 之 简单的数据加密解密类 DataEncryptionAndDecryptionManager 实现 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security in...
本资源包含了一些常见的C#加密解密类,如MD5、RSA、DES和RC2。下面将详细阐述这些算法的工作原理及其在C#中的应用。 1. **MD5(Message-Digest Algorithm 5)** MD5是一种广泛使用的哈希函数,它将任意长度的输入...
.net下C#数据库连接字符串在配置文件中的加密解密类
这个"DES加密解密类"显然提供了一个方便的工具,可以进行数据的加密和解密操作,并且支持使用特定密码进行双加密,提高了安全性。 DES算法基于一个56位的密钥,通过一系列复杂的置换和轮函数操作,将明文数据转换成...
C# 加密解密类,可以直接附加到程序中运行,已经很完善了
根据给定的文件信息,我们可以总结出以下关于“一个字符串加密解密类”的详细知识点: ### 一、类概述 该类提供了一种简单的方法来对字符串进行加密和解密操作,适用于保护重要的数据(例如密码)。通过使用UTF-8...
c# 中的一个aes的加密解密类源文件,里面包含调用方法!
DES加密/解密类成熟的加密解密类,适合项目开发,可以对于明文进行加密
首先,这个加密解密类(XDeode)的核心思想是通过预定义的一个字符串($strbase),将其中的一部分作为标记长度字符串、数字替换字符串和补位字符串。在加密过程中,首先计算数字的长度,然后根据预设的规则进行加密...