Java AES和SHA示例
来源:互联网 发布:淘宝改评价 编辑:程序博客网 时间:2024/06/05 13:07
import java.security.Key;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class Test2 {
public static String sha1key = "00003ecea46d1111";//16位public static String aeskey = "000000007da2998caf4cf04d11111111";//32位/** * 128位AES加密 * @param key 密钥,16禁止表示的字符串,长度为32 * @param content 明文 * @return 密文 */public static String encryptByAES(String key, String content) { if(key==null || content == null)return null; byte[] keyBytes = hexString2Bytes(key); try { Key k = new SecretKeySpec(keyBytes, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, k); byte[] output = cipher.doFinal(content.getBytes("UTF-8")); return bytes2HEXString(output); } catch(Exception e) { System.out.println("AES加密失败"); } return null;}public static void main(String[] args) { String doTime = (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date()); System.out.println("time=" + doTime); String content = "time="+doTime + "&mobile=13558696658"; System.out.println("content=" + content); System.out.println("AES=" + encryptByAES(aeskey, content)); System.out.println("SHA=" + encryptBySHA(content + sha1key));}public static String encryptBySHA(String content) { if(content == null) return null; try { MessageDigest md = MessageDigest.getInstance("SHA"); byte[] output = md.digest(content.getBytes("UTF-8")); return bytes2HEXString(output); }catch (Exception e) { e.printStackTrace(); } return null;}public static String bytes2HEXString(byte[] src) { StringBuilder sb = new StringBuilder(); if(src==null || src.length<=0) { return null; } for(int i=0; i<src.length; i++) { int v = src[i]&0xFF; String hv = Integer.toHexString(v); if(hv.length() < 2) { sb.append(0); } sb.append(hv); } return sb.toString();}public static byte[] hexString2Bytes(String hexString){ if(hexString =="" || hexString.equals("")){ return null; } hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for(int i= 0; i < length; i++){ int pos = i*2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos+1])); } return d;}public static byte charToByte(char c){ return (byte) "0123456789ABCDEF".indexOf(c);}
}
0 0
- Java AES和SHA示例
- java AES、SHA-1加密函数
- SHA-1和MD5示例程序 Java编写
- Java加密之SHA示例
- Java AES加密示例
- java实现 SHA-256 和 SHA-512
- AES SHA SM3 MD5
- openssl aes+sha
- “摘要”算法,使用示例。(java, sha) [备忘]
- Java AES 加密 解密 示例
- AES加密算法,JAVA实现示例
- Java AES加密解密示例
- DES、AES、SHA加密算法详解
- AES SHA-1 SM3 MD5
- MD5,sha1,sha,AES加密
- AES - Java AES算法和openssl配对
- AES加密算法原理及JAVA示例
- Java之AES加解密示例
- c++的引用
- 浏览器兼容问题
- 如何提升你的阅读能力?
- 使用Apache转发,解决jQuery的跨域问题!
- DRAMSim2学习3——DRAM中BANK和RANK的区别
- Java AES和SHA示例
- Android滚轮控件WheelView
- JAVA经验之谈
- PHP-CodeIgniter框架向数据库插入数据
- 11.5List
- java代码规范
- 报数游戏 seven eleven
- Spark -6:运行Spark on YARN
- WeakHashMap的一些理解