JAVA加密方法總結
/** * MD5加密,適用於通用的加密規則 * @param id * @return */ public String sign(String content) { String contentKey = content + privateKey; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.reset(); md.update(contentKey.getBytes("UTF-8")); byte[] result = md.digest(); return HttpHelper.bytesToHexString(result); } catch (Exception e) { System.out.println(Arrays.toString(e.getStackTrace())); } return null; } /** * MD5withRSA私鑰加密 * @param content * @return * @throws Exception */ public String MD5withRSASign(String content) throws Exception { byte[] contentBytes = content.getBytes("utf-8"); Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(getPrivateKey(privateKey)); signature.update(contentBytes); byte[] signs = signature.sign(); return Base64.encodeBase64String(signs); } /** * SHA1withRSA私鑰加密 * @param content * @param privateKey * @return * @throws Exception */ public String getSha1Sign(String content) throws Exception { byte[] contentBytes = content.getBytes("utf-8"); Signature signature = Signature.getInstance("SHA1withRSA"); signature.initSign(getPrivateKey(privateKey)); signature.update(contentBytes); byte[] signs = signature.sign(); return Base64.encodeBase64String(signs); } /** * RSA公鑰加密 * @param content * @return * @throws Exception */ public String RSASign(String content) throws Exception{ byte[] contentBytes = content.getBytes("utf-8"); Cipher cipher=Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, getPublicKey(publicKey)); return Base64.encodeBase64String(cipher.doFinal(contentBytes)); } /** * 公鑰轉換 * @param key * @return * @throws Exception */ private static PublicKey getPublicKey(String key) throws Exception { byte[] keyBytes; keyBytes = (new BASE64Decoder()).decodeBuffer(key); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(keySpec); return publicKey; } /** * 私鑰轉換 * @param key * @return * @throws Exception */ private static PrivateKey getPrivateKey(String key) throws Exception { byte[] keyBytes; keyBytes = (new BASE64Decoder()).decodeBuffer(key); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(keySpec); return privateKey; }
相關推薦
JAVA加密方法總結
/** * MD5加密,適用於通用的加密規則 * @param id * @return */ public String sign(String content) { String contentKey = content + privateKey;
java中方法總結(每周更新)
實例 參數 創建 方法 get ack bject 子類 generate 1、URLEncoder.encode(username,"utf-8")將“utf-8”編碼的username先解碼,然後再采用URL編碼 2、URLDecoder.decode(autoLogi
java finalize方法總結 GC執行finalize的過程
(1) 首先,大致描述一下finalize流程:當物件變成(GC Roots)不可達時,GC會判斷該物件是否覆蓋了finalize方法,若未覆蓋,則直接將其回收。否則,若物件未執行過finalize方法,將其放入F-Queue佇列,由一低優先順序執行緒執行該佇列中物件的finalize方法。執行finaliz
linux下檔案加密方法總結
為了安全考慮,通常會對一些重要檔案進行加密備份或加密儲存,下面對linux下的檔案加密方法做一簡單總結: 方法一:gzexe加密 這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。 它是使用系統自帶的gzexe程式,它不但加密
Android開發根據Json直接生成Java Bean方法總結
在開發過程中拿到從伺服器請求的json字串需要解析成Bean物件方便我們使用,自己寫bean又太麻煩 經過這麼長時間的Android開發,我收集了三種比較常用的通過json自動生成Bean物件的方法:
Java中獲取資源文件的方法總結
tco doget 技術 resource images 磁盤 response linux exception 這裏總結3中方法獲取資源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletC
構造方法和一般方法的區別(面試)-----java基礎知識總結
col 進行 span round 構造方法 基礎知識 fff font size 構造方法:對象創建時,就會調用與之對應的構造方法,對對象進行初始化; 一般方法:對象創建後,需要方法功能時才會調用。 構造方法,在對象創建時,會調用且只調用一次。
JAVA中循環刪除list中元素的方法總結
tor 循環 toolbar i++ 使用 修改 log span .get 印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳
java構造方法的註意事項總結
nbsp 不能 每次 ati 負責 進行 需要 構造函數 註意 構造方法細節總結~~~~~ 1:首先要了解為什麽需要構造方法,,,類中有太多的屬性,每次給屬性賦值時非常麻煩:編碼量大,無法重用給屬性賦值的代碼。。 2:什麽是構造方法呢? 構造方法負責初始化類中的實
JAVA中獲取鍵盤輸入的方法總結
鍵盤輸入 throws 應該 padding left 接收 [] util float Java程序開發過程中,需要從鍵盤獲取輸入值是常有的事,但Java它偏偏就沒有像c語言給我們提供的scanf(),C++給我們提供的cin()獲取鍵盤輸入值的現成函數!下面介紹三種解決
java基本運算方法總結(ing)
方法 運算 sys 隨機數 mat ... 方法總結 clas math 邊學邊總結... 1、冪的運算 Math.pow(a,b) 2、隨機數的方法 System.currentTimeMillis() Math.randow() 3、絕對值的運算
JAVA中循環刪除list中元素的方法總結(跳格刪除問題解決)(轉)
今天 src log 觸發 導致 spi als exceptio spa 印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至
java基礎學習總結(七):Cloneable介面和Object的clone()方法
為什麼要克隆 為什麼要使用克隆,這其實反映的是一個很現實的問題,假如我們有一個物件: public class SimpleObject implements Cloneable { private String str; public SimpleObject()
Java IO流常用操作方法總結
一、簡介 在實際工作中,基本上每個專案難免都會有檔案相關的操作,比如檔案上傳、檔案下載等,這些操作都是使用IO流進行操作的,本文將通過簡單的示例對常用的一些IO流進行總結。 二、使用詳解 【a】FileInputStream與FileOutputStream 首先通過檢視jdk文件,
關於java.lang.UnsupportedClassVersionError解決方法總結
今天在把本地專案像伺服器部署的時候報錯java.lang.UnsupportedClassVersionError,我本地用的JDK1.8,伺服器是1.7的JDK,所以報這個錯誤,我又重新在本地安裝了JDK1.7,重新編譯後上傳,問題解決。在這做個記錄。 此問題一般出現在高版本JDK向底版本JD
java 加密的一些概念(慕課網視訊總結,僅對於自己梳理知識)
當您點開這個文章的時候,想要看一下我的總結,不妨看一下別人寫的吧。基本上都是翻譯視訊中的所有資訊。地址為:https://blog.csdn.net/u013991521/article/category/5787377 1.加密:把明文(也就是大部分人能看懂的字元)轉換成同位數的操作。可能不是
php、java、android、ios通用的3des加密方法
php、java、android、ios通用的3des方法 php <?php class DES3 { var $key = "my.oschina.net/penngo?#@"; var $iv = "01234567"; fu
jsp頁面中JSTL/EL標籤引用java後臺靜態static欄位的方法總結
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java程式設計學習技巧和方法總結
乾貨:必須要有反饋,不斷調整,多讀書,多些筆記。 解釋:不練習你以為你能掌握?笑話,只有自己根據一個個小目標不斷的敲,執行,給予你反饋,這樣才會真的進步。 紙上談Java,是永遠停止在口。 關於筆記:我其實一直有些筆記的習慣,高中到現在15年了;心情不好,寫寫筆記,學到重點
java實現隨機產生6位數的方法總結
代碼 exti code str 循環 字符串 end random and package com.yin.test; import java.util.Random; import org.junit.Test; /** * @author v