易截截图软件、单文件、免安装、纯绿色、仅160KB

Java加密与解密(by quqi99)

                                        Java加密与解密(by quqi99)
作者:张华 发表于:2009-12-31
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
步骤1:生成一个安全密匙。在加密或解密任何数据之前需要有一个密匙。密匙是随同被加密的应用一起发布的一小段数据
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class GenerateKey
{
  static public void main( String args[] ) throws Exception {
    String keyFilename = "key.data";
    String algorithm = "DES";
    // 生成密匙
    SecureRandom sr = new SecureRandom();
    KeyGenerator kg = KeyGenerator.getInstance( algorithm );
    kg.init( sr );
    SecretKey key = kg.generateKey();//[-68, -68, -57, -71, 42, -125, 32, 13]
    // 把密匙数据保存到文件
    Util.writeFile( keyFilename, key.getEncoded() );
  }
}
步骤2:加密数据。得到密匙之后,接下来就可以用它加密数据。
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = /* 用某种方法获得密匙数据 */;
// 从原始密匙数据创建DESKeySpec对象
DESKeySpec dks = new DESKeySpec( rawKeyData );
// 创建一个密匙工厂,然后用它把DESKeySpec转换成
// 一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
SecretKey key = keyFactory.generateSecret( dks );
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance( "DES" );
// 用密匙初始化Cipher对象
cipher.init( Cipher.ENCRYPT_MODE, key, sr );
// 现在,获取数据并加密
byte data[] = /* 用某种方法获取数据 */
// 正式


相关文档:

结合反射与 XML 实现 Java 编程的动态性

反射是 Java 语言被视为动态或准动态语言的一个关键性质,结合反射和 XML 会帮助我们更快、更方便地实现一些动态代码,从而解决编程中可能遇到的不确定问题。本文将结合反射与 XML 对 Java 编程的动态性进行深入浅出的讨论。在理解本文的思想之后,您可以将其应用到程序中以创建灵活的代码。
引言
在现实生活中,经常会发 ......

Java桌面游戏开发框架,LGame Simple 0.2.5版发布


LGame是Loonframework框架的一部分,也是针对Java2D游戏开发而设计的“一揽子”项目,它的创立初衷在于构建一个高效且完善的Java2D游戏开发体系。

发布时间

版本号

2009-12-29
0.2.5
2009-10-10
0.2.0
2009-09-13
0.1.5
2009-08-11
0.1.0
2009-12-29 LGame-Simple-0.2.5 ......

java中判断字符串是否为数字的三种方法

java中判断字符串是否为数字的三种方法 
1>用JAVA自带的函数
public static boolean isNumeric(String str){
  for (int i = str.length();--i>=0;){  
   if (!Character.isDigit(str.charAt(i))){
    return false;
   }
  }
  ......

Java时间更新周期测试

写了个简单的测试代码,测试了JAVA的时间更新单元,发现currentTimeMillis的更新周期大约是15或16ms,所以精度也就在15ms-16ms,低于15ms的时间是无法测量出来的。而nanoTime的更新周期大约在800-1200纳秒左右,因此低于 800ns的时间无法测量出来。代码如下:
public class JavaTimeWinTest
{
public static void main ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号