Java与Postgresql中的加解密API对应
来源:互联网 发布:同济大学网络教育 编辑:程序博客网 时间:2024/05/17 22:37
Base64
加密public static String encryptBASE64(byte[] key) throws Exception { //return (new BASE64Encoder()).encodeBuffer(key);//使用sun的api,不推荐 return (new org.apache.commons.codec.binary.Base64()).encodeBase64String(key.getBytes()); }解密public static byte[] decryptBASE64(String key) throws Exception { //return (new BASE64Decoder()).decodeBuffer(key);//使用sun的api,不推荐 return (new org.apache.commons.codec.binary.Base64()).decodeBase64(key); } PG数据库dafc=> select encode('tcps1234','base64'); encode -------------- dGNwczEyMzQ=(1 row)dafc=> select encode('tcps1234'::bytea,'base64'); encode -------------- dGNwczEyMzQ=(1 row)dafc=> select decode('dGNwczEyMzQ=','base64'); decode ---------- tcps1234(1 row)
MD5
String data ="tcps1234"; MessageDigest md5= MessageDigest.getInstance("MD5");//md5.update("tcps1234".getBytes());//md5.digest()byte[] md5Byte = md5.digest(data.getBytes());System.out.println(bytesToHexStr(md5Byte));//006E275315C436215775382107FDF230PG数据库dafc=> select md5('tcps1234'); md5 ---------------------------------- 006e275315c436215775382107fdf230(1 row)dafc=> select md5('tcps1234'::bytea); md5 ---------------------------------- 006e275315c436215775382107fdf230(1 row)dafc=> select encode(digest('tcps1234','md5'),'hex'); encode ---------------------------------- 006e275315c436215775382107fdf230(1 row)
SHA
PG数据库
注意Java中SHA与SHA-1是一样的,PG中不一样,另外JDK中未实现SHA-224,PG中有
HMAC
public class HmacUtil { /** * MAC算法可选以下多种算法 * * HmacMD5 * HmacSHA1 * HmacSHA256 * HmacSHA384 * HmacSHA512 */ public static final String KEY_MAC = "HmacMD5"; public static void main(String[] args) throws Exception { String inputStr = "tcps天津通卡"; byte[] inputData = inputStr.getBytes(); String macKey = "a1a2a3a4a5a6a7a8"; SecretKey secretKey = new SecretKeySpec(macKey.getBytes(), KEY_MAC); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); byte[] macData = mac.doFinal(inputData); System.out.println(Util.getHexString(macData)); }}PG数据库dafc=> select encode(hmac('tcps天津通卡','a1a2a3a4a5a6a7a8', 'md5'),'hex'); encode ---------------------------------- 324d53787c75a0460bf8f0f21a029a93(1 row)dafc=> select encode(hmac('tcps天津通卡','a1a2a3a4a5a6a7a8', 'sha1'),'hex'); encode ------------------------------------------ a0886f87784807946d9985b5084346d91c783c9a(1 row)dafc=> select encode(hmac('tcps天津通卡','a1a2a3a4a5a6a7a8', 'sha512'),'hex'); encode --------------------------------------------------------- fdbc06f863d3f62abaff409d6f9d6029b4c5d51fc097b4c129c584c11904c8a7f3bbb10d8758f59c79553a3549e231f2b088a37cde00041c5fed8315b5b9aefb(1 row)
DES
public static void main(String[] args){ // 定义加密算法,可用 DES,DESede,Blowfish String Algorithm = "DES"; byte[] DEFAULT_DES_KEY = { (byte) 0x21, (byte) 0x01, (byte) 0x11, (byte) 0x82, (byte) 0x32, (byte) 0x85,(byte) 0x128, (byte) 0x65 }; String data = "abcdefgh"; SecretKey deskey = new SecretKeySpec(DEFAULT_DES_KEY, Algorithm); Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, deskey); String encryptedData = bytesToHexStr(cipher.doFinal(data.getBytes())); System.out.println("encry data:" + encryptedData); cipher.init(Cipher.DECRYPT_MODE, deskey); System.out.println("decrypt data:" + new String(cipher.doFinal(hexStrToBytes(encryptedData)))); }
阅读全文
1 0
- Java与Postgresql中的加解密API对应
- ios des加密与解密(对应JAVA加解密)
- postgresql 加解密
- JAVA中的BASE64加解密
- java中的加解密操作
- JAVA中的加解密艺术
- Java加解密与数字签名
- Java加解密与数字签名
- rsa非对称加解密,java服务器端对应android、IOS客户端以及javaScript的加解密
- Java中的Base64加解密方法
- Java 加解密中的对称加密详解
- java 与 c# 3des 加解密
- VC与JAVA互通AES加解密
- Android(java)与C#,DES加解密
- java 与 c# 3des 加解密
- MD5+DES在C#.NET与Java/Android中的加解密使用
- JAVA RSA加解密和数字签名、DES加解密 在项目中的实际使用
- JAVA RSA加解密和数字签名、DES加解密 在项目中的实际使用
- 如何解决ajax跨域问题(转)
- SQL导入 timestamp 数据时报错
- ADG故障解决案例:db_file_name_convert参数设置错误
- js 数组对象 排序
- 11显式游标
- Java与Postgresql中的加解密API对应
- 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
- Linux学习笔记 ---常用命令
- 第26讲项目2-成绩等级
- python循环解码base64
- 12带参数的游标
- Linux 查看HDD (磁盘)详细信息的几个方法
- POJ
- Go语言的工作空间和GOPATH环境变量