当前位置: 编程技术>移动开发
本页文章导读:
▪【工具种】Java常用数据类型的转换 【工具类】Java常用数据类型的转换/**
* @declaration 常用数据类型转换
* @date 2012-10-30 下午2:44:25
*
*/
public class DataTypeChangeHelper {
/**
* 将一个单字节的byte转换成32位的int
*
* @param b
* .........
▪ [AndEngine学习课程] 第1节 搭建开发环境 [AndEngine学习教程] 第1节 搭建开发环境1.下载AndEngine源代码:
网址:https://github.com/nicolasgramlich/AndEngine
解压后放在磁盘上.
2.导入代码:
在eclipse下file->new->pr.........
▪ 【工具种】AES加密和解密 【工具类】AES加密和解密package innoview.itouchviewcivil.util;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* AE.........
[1]【工具种】Java常用数据类型的转换
来源: 互联网 发布时间: 2014-02-18
【工具类】Java常用数据类型的转换
/**
* @declaration 常用数据类型转换
* @date 2012-10-30 下午2:44:25
*
*/
public class DataTypeChangeHelper {
/**
* 将一个单字节的byte转换成32位的int
*
* @param b
* byte
* @return convert result
*/
public static int unsignedByteToInt(byte b) {
return b & 0xFF;
}
/**
* 将一个单字节的Byte转换成十六进制的数
*
* @param b
* byte
* @return convert result
*/
public static String byteToHex(byte b) {
int i = b & 0xFF;
return Integer.toHexString(i);
}
/**
* 将一个4byte的数组转换成32位的int
*
* @param buf
* bytes buffer
* @param byte[]中开始转换的位置
* @return convert result
*/
public static long unsigned4BytesToInt(byte[] buf, int pos) {
int firstByte = 0;
int secondByte = 0;
int thirdByte = 0;
int fourthByte = 0;
int index = pos;
firstByte = (0x000000FF & (buf[index]));
secondByte = (0x000000FF & (buf[index + 1]));
thirdByte = (0x000000FF & (buf[index + 2]));
fourthByte = (0x000000FF & (buf[index + 3]));
index = index + 4;
return (firstByte << 24 | secondByte << 16 | thirdByte << 8 | fourthByte) & 0xFFFFFFFFL;
}
/**
* 将一个byte的数组转换成short数组
* @param buf 数据
* @param size 数据大小
* @return
*/
public short[] byteAryToShortAry(byte [] buf, int size){
int arySize = size / 2;
short [] result = new short[arySize];
int firstByte = 0;
int secondByte = 0;
for (int i = 0; i < arySize; i+=2){
firstByte = (0x000000FF & (buf[i]));
secondByte = (0x000000FF & (buf[i + 1]));
result[i] = (short)((firstByte << 8 | secondByte) & 0xffff);
}
return result;
}
/**
* 将一个short的数组转换成byte数组
* @param buf
* @param size
* @return
*/
public byte[] shortAryToByteAry(short [] buf, int size){
int arySize = size * 2;
byte [] result = new byte[arySize];
for (int i = 0; i < arySize; i+=2){
result[i] = (byte)(0xFF & (buf[i/2]>>8));
result[i+1] = (byte)(0xFF & (buf[i/2]));
}
return result;
}
/**
* 将16位的short转换成byte数组
*
* @param s
* short
* @return byte[] 长度为2
* */
public static byte[] shortToByteArray(short s) {
byte[] targets = new byte[2];
for (int i = 0; i < 2; i++) {
int offset = (targets.length - 1 - i) * 8;
targets[i] = (byte) ((s >>> offset) & 0xff);
}
return targets;
}
/**
* 将32位整数转换成长度为4的byte数组
*
* @param s
* int
* @return byte[]
* */
public static byte[] intToByteArray(int s) {
byte[] targets = new byte[2];
for (int i = 0; i < 4; i++) {
int offset = (targets.length - 1 - i) * 8;
targets[i] = (byte) ((s >>> offset) & 0xff);
}
return targets;
}
/**
* long to byte[]
*
* @param s
* long
* @return byte[]
* */
public static byte[] longToByteArray(long s) {
byte[] targets = new byte[2];
for (int i = 0; i < 8; i++) {
int offset = (targets.length - 1 - i) * 8;
targets[i] = (byte) ((s >>> offset) & 0xff);
}
return targets;
}
/**32位int转byte[]*/
public static byte[] int2byte(int res) {
byte[] targets = new byte[4];
targets[0] = (byte) (res & 0xff);// 最低位
targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。
return targets;
}
/**
* 将长度为2的byte数组转换为16位int
*
* @param res
* byte[]
* @return int
* */
public static int byte2int(byte[] res) {
// res = InversionByte(res);
// 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000
int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00); // | 表示安位或
return targets;
}
}
[2] [AndEngine学习课程] 第1节 搭建开发环境
来源: 互联网 发布时间: 2014-02-18
[AndEngine学习教程] 第1节 搭建开发环境
1.下载AndEngine源代码:
网址:https://github.com/nicolasgramlich/AndEngine
解压后放在磁盘上.
2.导入代码:
在eclipse下file->new->project...->Android Project from existing code
在这里首先要确认你的android SDK版本要在4.03之上,低的话一定要升级才可以顺利的导入工程
我的版本如下:
接着点击next,找到源码目录选中:
点击finish就可以把整个工程的源代码顺利的导入了
至此,已经成功的把Andengine工程导入到eclipse了,下一节.将讲解怎么使用AndEngine导出的jar文件来建立工程.
我的Andengine源代码:http://download.csdn.net/detail/cen616899547/4701143
[3] 【工具种】AES加密和解密
来源: 互联网 发布时间: 2014-02-18
【工具类】AES加密和解密
package innoview.itouchviewcivil.util;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* AES加密器
*
* @author Eric_Ni
*
*/
public class AESEncryptor {
/**
* AES加密
*/
public static String encrypt(String seed, String cleartext)
throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
return toHex(result);
}
/**
* AES解密
*/
public static String decrypt(String seed, String encrypted)
throws Exception {
if (seed == null || "".equals(seed) || encrypted == null || "".equals(encrypted)){
return null;
}
byte[] rawKey = getRawKey(seed.getBytes());
byte[] enc = toByte(encrypted);
byte[] result = decrypt(rawKey, enc);
return new String(result);
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
if (raw == null || clear == null){
return null;
}
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted)
throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static String toHex(String txt) {
return toHex(txt.getBytes());
}
public static String fromHex(String hex) {
return new String(toByte(hex));
}
public static byte[] toByte(String hexString) {
if (hexString == null || "".equals(hexString)){
return null;
}
int len = hexString.length() / 2;
byte[] result = new byte[len];
for (int i = 0; i < len; i++) {
result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2), 16).byteValue();
}
return result;
}
public static String toHex(byte[] buf) {
if (buf == null)
return "";
StringBuffer result = new StringBuffer(2 * buf.length);
for (int i = 0; i < buf.length; i++) {
appendHex(result, buf[i]);
}
return result.toString();
}
private final static String HEX = "0123456789ABCDEF";
private static void appendHex(StringBuffer sb, byte b) {
sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
}
}
最新技术文章: