AES 加密 解密 Hex編碼解碼
最近做小程式使用者ID驗證的問題,文明傳遞有風險,所以想加密再傳送使用者ID,找了些加密的方法,
最開始想用MD5加密,以前有過這樣的加密方式,現在換一種RES方式 對應的一組公鑰和私鑰加密方式,
/** * @author lmc * @version date:2018年9月27日 上午11:08:27 */ package com.yitai.tms.weixin.rsa; import java.math.BigInteger; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import javax.crypto.Cipher; import org.apache.commons.codec.binary.Hex; /** * @author lmc * @Email
[email protected] * @date 2018年9月27日 */ public class RSAwechat { private RSAPublicKey rsaPublicKey; private RSAPrivateKey rsaPrivateKey; public String encode(String src) { try { //初始化金鑰 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(512); KeyPair keyPair = keyPairGenerator.generateKeyPair(); rsaPublicKey = (RSAPublicKey)keyPair.getPublic(); rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate(); //私鑰加密 公鑰解密 PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, privateKey); byte[] resultBytes = cipher.doFinal(src.getBytes()); //私鑰解密 公鑰加密 // X509EncodedKeySpec x509EncodedKeySpec = // new X509EncodedKeySpec(rsaPublicKey.getEncoded()); // KeyFactory keyFactory = KeyFactory.getInstance("RSA"); // PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); // Cipher cipher = Cipher.getInstance("RSA"); // cipher.init(Cipher.ENCRYPT_MODE, publicKey); // byte[] resultBytes = cipher.doFinal(src.getBytes()); return Hex.encodeHexString(resultBytes); } catch(Exception e) { e.printStackTrace(); } return null; } public String decode(String src) { try { //私鑰加密 公鑰解密 X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded()); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, publicKey); byte[] resultBytes = cipher.doFinal(Hex.decodeHex(src.toCharArray())); //私鑰解密 公鑰加密 // PKCS8EncodedKeySpec pkcs8EncodedKeySpec // = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded()); // KeyFactory keyFactory = KeyFactory.getInstance("RSA"); // PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); // Cipher cipher = Cipher.getInstance("RSA"); // cipher.init(Cipher.DECRYPT_MODE, privateKey); // byte[] resultBytes = cipher.doFinal(Hex.decodeHex(src.toCharArray())); return new String(resultBytes); } catch(Exception e) { e.printStackTrace(); } return null; } }
加密方式
/** * @author lmc * @version date:2018年9月27日 上午11:11:11 */ package com.yitai.tms.weixin.rsa; /** * @author lmc * @Email [email protected] * @date 2018年9月27日 */ public class RSAtool { private static RSAwechat rsa=new RSAwechat(); public static String encRSAwechat(String token){ return rsa.encode(token); } public static String decRSAwechat(String token){ return rsa.decode(token); } public static void main(String args[]) { System.out.println(RSAtool.encRSAwechat("asdfasdfasdfa")); String str = RSAtool.encRSAwechat("asdfasdfasdfa"); System.out.println(RSAtool.decRSAwechat(str)); } }
相關推薦
AES 加密 解密 Hex編碼解碼
最近做小程式使用者ID驗證的問題,文明傳遞有風險,所以想加密再傳送使用者ID,找了些加密的方法, 最開始想用MD5加密,以前有過這樣的加密方式,現在換一種RES方式 對應的一組公鑰和私鑰加密方式, /** * @author lmc * @version d
AES 加密 解密(Hex編碼解碼)
Aes加密解密方法使用Hex進行了編碼解碼 package com.baidu.wallet.bdwallet.utils; import java.io.UnsupportedEncodingException; import java.security.Inval
Aes加密解密
tran delegate class ext str eap ase hfs tde 加密時:先對string進行utf8解析成數組-->對數組進行加密-->對加密結果用base64解析成string。 那麽揭秘時,
AES加密解密&&SHA1、SHA加密&&MD5加密
algorithm buffer password 使用 eas ray locks tex update AES加密解密 SHA1、SHA加密 MD5加密 二話不說立即附上代碼: package com.luo.util; import j
C# 實現 JAVA AES加密解密[原創]
com base gets tran con spec ole tor 技術分享 以下是網上普遍能收到的JAVA AES加密解密方法。 因為裏面用到了KeyGenerator 和 SecureRandom,但是.NET 裏面沒有這2個類。無法使用安全隨機數生成KEY。 我們
AES加密解密 Java中運用
upper span pub substring rac ont wid mem log AES全稱 Advanced Encryption Standard, 高級加密算法,更加安全,可取代DES。 Aes: package com.blog.d201706.en
Javascript實現前端AES加密解密功能
西安人 才網 西安人才網掌握的HTML中的js前端AES加密最近因為項目需求做了一次MITM,俄然即便發現運用HTTPS,也不能確保數據傳輸過程中的安全性。 經過中間人進犯,能夠直接獲取到Http協議的一切內容。 所以開端嘗試做一些簡略的加密,在一定程度上確保安全性。本次選用AES加密數據,所以客戶端
C# 實現AES加密--解密
bsp 密文 rem adding gets manage string sys cipher /// <summary> /// AES 加密 /// </summary> ///
ruby 實現java中的aes 加密解密
abcde class hwm nbsp crypt 實現 () cbc sad def aes_encrypt() cipher = OpenSSL::Cipher::AES.new(128, :CBC) cipher.encrypt cipher.key =
python AES加密解密 pycryptodome
掌握 mod pack 然而 http != col 技術 aes 環境 pyhton3.6 pip 升級到10.0以上,,不然可能出現裝不上的可能。 博主為了解碼 AES 用了1天的時間,安了各種包,然而走了很多坑,在這裏給大家提供一個簡便的方法 首先在命令行(推薦)
Crypto++ AES 加密解密流程
color 程序 pla ESS dem cde inb def 必須 // aesdemo.cpp : 定義控制臺應用程序的入口點。 // #include <stdio.h>#include <tchar.h>#include <ios
php aes加密解密類(兼容php5、php7)
bytes pri rip dom ase lee vat idea cipher <?php /** * @desc:php aes加密解密類 * @author [Lee] <[<[email protected]>]> */ class
java AES 加密解密工具(Advanced Encryption Standard)
@param key block 生成 utf i++ spec res null 1、通用方法 package com.qlkj.hzd.commom.utils; import javax.crypto.*; import java.io.Unsupported
cryptojs aes加密解密
base64和hex vue專案 //如下程式碼寫為vue的全域性函式,便於呼叫 var iv = crypto.enc.Utf8.parse('1234567887654321'); &
PHP使用AES加密/解密
AES加密在php5的版本中使用的mcrypt_decrypt 函式,該函式已經在php7.1後棄用了,取而代之的是openssl的openssl_encrypt和openssl_decrypt,並且程式碼也非常精簡,下面是示例程式碼: class Aes { public $key = ''
CTR分組模式實現AES加密解密(go語言)
版權宣告:本文為作者原創,如需轉載,請註明出處 https://blog.csdn.net/weixin_42940826 AES演算法簡介 AES演算法是為了取代DES演算法而生,雖然3DES演算法仍然可以使用,但是效率比較低下,AES演算法是在眾多演算法中選拔
AES加密解密 附贈 base64
AES加密是一總比較常用的,會補足長度的加密方式,不管你長度為多少,加密完之後都會變成128位(僅指這裡,當然也有其他的AES)。 敲黑板:之前做過一次跨語言的加密解密,發現是不可以的。即java php c++之間不同的加密解密不要通用,因為進位制和編碼的問題,如果強行使用的話。需要二進
使用Python進行AES加密解密功能實現
PyCrypto是一款非常實用的Python加密模組,最近寫了一個檔案加密指令碼需要用到AES加密,和大家分析一下心得。 下載與安裝:PyCrypto專案已經於2015年7月停止了,下面是官方的下載地址。 https://www.dlitz.net/software/pycrypto/ 如果是l
PHP AES加密解密。
<?php namespace app\models; class AES{ public $key; //建構函式,用金鑰初始化 function Prpcrypt( $k ) { $this->key = $k; } /*AES加密*/ public static function e
PHP中AES加密解密類
我們在工作中會遇到各種加密,下面就是PHP中AES加密解密的類 <?php class Aes { /** * var string&nbs