1, 判断奇偶:
public static void isOdd(int num) { //判断奇偶: 1奇数 0偶数 int res=num&1; //判断res String resStr=(res^1)==0?"奇数":"偶数"; System.out.println(resStr); }
2, 两个整数互相交换:
public static void reverse(int a,int b) { System.out.println(a+"=="+b);//213 2 a= a^b; b= b^a; a = a^b; System.out.println(a+"=="+b);//2 213 }
3, 使用位运算: 二次加密信息(目前只会初步加密, 不会使用位运算二次加密,待以后更新)
初步加密 + 解密 : (自定义原始密钥: 如 String metaKey="helloworld";)
import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; public class Test { public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { String metaKey="helloworld"; //加密为byte数组 byte[] datas=encrp(metaKey,"aas");//69,109,-37,22,84,112,100,111, //解密byte数组 decrp( metaKey,datas);//aas } //静态方法: 加密---加密后返回byte[] , 可以使用位运算再进行二次信息加密 encrp(String metaKey,String mesg); //静态方法: 解密 decrtp(String metaKey, String encrtStr); }
//静态方法: 使用某原始密钥--->初步加密
public static byte[] encrp(String metaKey,String datas) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, InvalidKeySpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { // 原始密钥 DESKeySpec dks = new DESKeySpec(metaKey.getBytes()); // 密钥工厂 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); //新的密钥: 工厂加工密钥 SecretKey key= keyFactory.generateSecret(dks); // Cipher密码对象:加密算法DES,DESede,Blowfish Cipher cipher = Cipher.getInstance("DES"); // 用密钥加密信息 cipher.init(Cipher.ENCRYPT_MODE, key); byte[] res = cipher.doFinal(datas.getBytes()); System.out.print("加密后的byte数组:---"); for(int i=0;i<res.length;i++) { System.out.print(res[i]+","); } return res; }
//静态方法: 使用某原始密钥--->解密 被加密后的byte [ ]
public static void decrp(String metaKey,byte[] datas) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { //原始DES密钥 DESKeySpec dks = new DESKeySpec(metaKey.getBytes()); //密钥工厂-->加工原始密钥 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); //获取加工后的密钥 SecretKey key= keyFactory.generateSecret(dks); //密码对象Cipher:定义加密算法, DES,DESede,Blowfish Cipher cipher = Cipher.getInstance("DES"); //解密模式 cipher.init(Cipher.DECRYPT_MODE, key); byte[] res = cipher.doFinal(datas); String realdatas= new String(res); System.out.println("\n解密后的数据....."+realdatas);//aas }