- 浏览: 468533 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuan_bin1990:
您好,请问下demo如何运行啊,准备研究研究,但不知道入口啊。 ...
ssh2(struts2+spring2.5+hibernate3.3)自动生成代码程序 -
luyulong:
[b][/b][i][/i][ ...
jQuery进度条插件 jQuery progressBar -
txin0814:
mark..
读取文件目录 -
vurses:
[align=center][color=red][size= ...
include 与 jsp:include区别 -
Roshan2:
http://lijiejava.iteye.com/blog ...
Spring AOP 入门实例
import java.io.IOException;
public class Encryption
{
private static byte escapeSpecialTok(byte b)
{
byte map[][]={{0x21, 0x61}, {0x22, 0x62}, {0x26, 0x65}, {0x27, 0x66},
{0x3c, 0x7a}, {0x3e, 0x7b}, {0x3f, 0x7c}, {0x00,0x00}};
for(int i=0; i<map.length; i++) {
if(b==map[i][0])
return map[i][1];
if(b==map[i][1])
return map[i][0];
}
return b;
}
private static byte[] encryptTok(byte[] raw)
{
byte[] cooked=new byte[3];
byte[] byteTemp= new byte[4];
// 0xfc: 11111100, /4: >> 2
byteTemp[0]=(byte)(((int)raw[0] & 0xfc) >> 2 );
// 0x03: 00000011, *8: << 3
byteTemp[1]=(byte)(((int)raw[0]&0x03)<<3);
// 0xe0: 11100000, /32: >> 5
byteTemp[2]=(byte)(((int)raw[1]&0xe0)>>5);
// 0x1f: 00011111
byteTemp[3]=(byte)((int)raw[1] & 0x1f);
cooked[0]=(byte)((int)byteTemp[0]+0x21);
cooked[1]=(byte)((int)(byteTemp[1]|byteTemp[2])+0x21);
cooked[2]=(byte)((int)byteTemp[3]+0x21);
cooked[0]=escapeSpecialTok(cooked[0]);
cooked[1]=escapeSpecialTok(cooked[1]);
cooked[2]=escapeSpecialTok(cooked[2]);
return cooked;
}
public static String encrypt(String strUnicode) throws IOException
{
byte[] bytes, tok;
String strEncrypted;
bytes=strUnicode.getBytes();
tok=new byte[2];
strEncrypted=new String();
for(int i=0; i<bytes.length; i+=2) {
tok[0]=bytes[i];
if(i==bytes.length-1)
tok[1]=0x00;
else
tok[1]=bytes[i+1];
strEncrypted+=new String(encryptTok(tok));
}
return strEncrypted;
}
}
//解密
public class Decryption
{
private static byte escapeSpecialTok(byte b)
{
byte map[][]={{0x21, 0x61}, {0x22, 0x62}, {0x26, 0x65}, {0x27, 0x66},
{0x3c, 0x7a}, {0x3e, 0x7b}, {0x3f, 0x7c}, {0x00, 0x00}};
for(int i=0; i<map.length; i++) {
if(b==map[i][0])
return map[i][1];
if(b==map[i][1])
return map[i][0];
}
return b;
}
private static byte[] decryptTok(byte[] raw)
{
byte[] cooked=new byte[2];
byte[] byteTemp= new byte[4];
raw[0]=escapeSpecialTok(raw[0]);
raw[1]=escapeSpecialTok(raw[1]);
raw[2]=escapeSpecialTok(raw[2]);
// 0x3f : 00111111, << 2
byteTemp[0]=(byte)((((int)raw[0] - 0x21) & 0x3f) << 2);
// 0x18 : 00011000, >> 3
byteTemp[1]=(byte)((((int)raw[1] - 0x21) & 0x18) >> 3);
// 0x07 : 00000111, << 5
byteTemp[2]=(byte)((((int)raw[1] - 0x21) & 0x07) << 5);
// 0x1f: 00011111
byteTemp[3]=(byte)(((int)raw[2] - 0x21) & 0x1f);
cooked[0]=(byte)(byteTemp[0]| byteTemp[1]);
cooked[1]=(byte)(byteTemp[2]| byteTemp[3]);
return cooked;
}
public static String decrypt(String strCode) throws IOException
{
byte[] bytes, tok, decStr, tempStr;
String strDecrypted;
bytes = strCode.getBytes();
tok = new byte[3];
tempStr = new byte[3];
decStr = new byte[bytes.length];
strDecrypted = new String();
int j;
j =0;
for(int i=0; i<bytes.length; i+=3)
{
tok[0]=bytes[i];
if(i==bytes.length-2)
{
tok[1]=bytes[i+1];
tok[2]=0x00;
}
else if(i==bytes.length-1)
{
tok[1]=0x00;
tok[2]=0x00;
}
else
{
tok[1]=bytes[i+1];
tok[2]=bytes[i+2];
}
tempStr = decryptTok(tok);
decStr[j]= tempStr[0];
j++;
decStr[j]= tempStr[1];
j++;
}
strDecrypted = new String(decStr);
return strDecrypted.trim();
}
}
发表评论
-
javascript 打印指定区域
2010-11-18 16:34 1590javascript网页html 打印指定区域在一张网页里面, ... -
MyEclipse 8.5 开发环境配置,汉化,Aptana2.0插件,SVN 插件,Flex Builder 3/4 插件安装
2010-10-26 14:27 1551MyEclipse 8.5 开发环境配置,汉化,Aptana2 ... -
java读取properties文件
2010-10-11 13:43 769使用J2SE API读取Properties文件的六种方法 1 ... -
dbcp基本配置和重连配置
2010-09-28 09:29 2669最近在看一些dbcp的相 ... -
JAVA实现文件转移
2010-09-28 09:26 952/** * //1.从旧文件拷贝内容到新文件 ... -
Properties读取类
2010-09-25 14:06 965package cn.feigme.util; ... -
JAVA读写ftp
2010-09-21 16:41 3549import java.io.DataInputStream; ... -
apache tomcat mysql负载均衡和集群
2010-09-14 10:30 1697前言:公司开发了一个网站,估计最高在线人数是3万,并发人数最多 ... -
Flash Builder 4 正式版序列号
2010-09-01 15:51 3993江湖上又出现新的FlashBuilder(Flex4)序列号: ... -
利用 org.apache.commons.io.FileUtils快速读写文件
2010-08-17 10:33 2733利用 org.apache.commons.io.FileUt ... -
netbeans常用快捷键
2010-08-10 16:26 9131、Application应用程序的 ... -
ERWIN7.1注册码
2010-06-23 12:15 1365终于找到ERWIN7.1注册码,也可在ERWIN7.2上注册。 ... -
Java压缩文件zip
2010-06-21 09:42 1145可以使用jdk提供的java.util.zip包的类来进行文件 ... -
文件资源操作
2010-06-16 21:52 10921.访问文件资源 假设有一个文件地位于 ... -
Java Regex To Use
2010-06-16 21:46 812Java代码 /** * 得到 ... -
Java Random and Java Disabuse
2010-06-16 21:46 1131一、Random 1、创建Random ... -
java 线程池
2010-06-16 21:44 11601)threadpool.xml Java代码 ... -
使用ThreadLocal,隔离多个线程之间的共享冲突
2010-06-16 21:29 1548早在Java 1.2推出之时,Java平台中就引入了一个新的 ... -
MyEclipse下开发Web Service
2010-06-16 21:28 1529开发环境 Sun Java 5+ ... -
jexcel使用
2010-06-16 21:23 1461Java代码 package excel.jx ...
相关推荐
本教程"JAVA加密解密-3"聚焦于如何在Java环境中实现文件的加密和解密功能。以下是一些核心知识点: 1. **加密的基本概念**:加密是将明文数据转化为不可读的密文,以防止未经授权的访问。解密则是将密文还原为原始...
总结来说,实现“java加密解密zip压缩包”项目,你需要理解Java的IO流、加密API以及如何结合使用这些工具来创建和读取加密的ZIP文件。同时,了解AS3的加密和ZIP处理机制,以便在需要的时候在AS3环境中解密这些文件。...
java加密和解密的方法,利用指定的密钥,可逆的。密钥必须16位。
本示例通过Java实现了字符串的加密与解密功能,采用DES加密算法,提供了基本的加密解密功能及字符串与十六进制之间的转换。这种实现方式适用于简单的加密需求,但对于更复杂的安全场景,建议考虑使用更先进的加密...
Java加密解密工具是开发过程中不可或缺的部分,尤其是在处理敏感数据时,确保数据的安全性至关重要。在Java中,我们可以使用各种库和内置API来实现加密和解密操作。本篇文章将深入探讨Java加密解密的核心概念、常用...
总的来说,理解并正确使用Java实现AES加密和解密,需要注意秘钥的生成、工作模式的选择、填充方式以及字符编码的一致性,这样才能确保数据的安全传输和正确解密。通过实际操作和实践,你可以更深入地掌握这些知识点...
Java加密解密工具包,通常用于保护敏感数据的安全,防止未经授权的访问或篡改。这个名为"JCT"的工具包提供了丰富的功能,使得开发者在Java应用中集成加密和解密操作变得更加简单。下面我们将详细探讨Java加密的相关...
标题"bcprov-jdk15on-1.47.jar Java 加密 解密 jar包"指的是一个Java加密解密库的jar文件,名为bcprov-jdk15on-1.47.jar。这个文件是用于在Java环境中执行加密和解密操作的,特别适用于那些基于Java 1.5或更高版本的...
本实例将聚焦于JAVA数据加密解密的实践应用。 首先,让我们理解加密和解密的基本概念。加密是一种将明文(可读信息)转化为密文(不可读信息)的过程,以保护数据不被未经授权的用户访问。解密则是加密的逆过程,将...
非对称加密算法解决了密钥分发的问题,不需要安全地交换密钥,但缺点是加密和解密过程速度较慢,适合加密少量数据,如密钥本身或是数字签名。常见的非对称加密算法包括: - **RSA**:一种广泛使用的公钥加密算法,由...
本文详细介绍了Java实现的RSA加密解密算法,包括密钥对生成、公钥和私钥的使用、加密和解密、密钥文件的生成等知识点。这些知识点对于Java开发者来说非常重要,可以帮助他们更好地理解和实现RSA加密解密算法。
Java加密解密技术在软件开发中扮演着至关重要的角色,特别是在数据安全领域。3DES(Triple Data Encryption Standard)是一种常见的加密算法,它基于DES(Data Encryption Standard)并对其进行了加强,提高了安全性...
Java中的AES128加密解密是信息安全领域中常见的数据保护技术。AES,全称Advanced Encryption Standard,是一种块密码标准,被广泛应用于各种场景,包括网络传输、存储数据加密等。128位是AES的一个关键参数,表示...
"java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...
java实现的RC4加密解密算法示例提供了一个简单的加密和解密解决方案,但是在实际应用中,需要根据具体情况选择合适的加密算法和密钥管理策略。 此外,本站还提供了各种在线加密解密工具,包括MD5在线加密工具、哈希...
2. **Java加密API** Java提供了Java Cryptography Extension (JCE) API来处理加密操作。这个库包括了`javax.crypto`包,其中的`Cipher`类用于执行加密和解密操作。`KeyPairGenerator`用于生成公钥和私钥对,`Key...
《JAVA加密和解密的艺术(第二版)》是一本深入探讨Java平台上的加密与解密技术的专业书籍。这本书不仅提供了理论知识,还包含了丰富的实践示例,帮助读者理解和掌握加密技术在实际应用中的运用。其内容涵盖了从基本...
Java加密和数字签名是网络安全领域中的重要概念,用于保护数据的隐私和完整性。在Java中,这些技术得到了广泛的应用和支持。 1. **消息摘要**: 消息摘要是一种单向散列函数,用于生成消息的固定长度表示,通常...
2. **Java安全策略**:在Java中,需要注意JCE的默认密钥长度限制,对于更强大的加密,可能需要安装不受限制的政策文件。 3. **解密后的安全处理**:解密后的用户信息应存储在安全的地方,并遵循最小权限原则,确保...