當前位置:首頁 » 密碼管理 » java不可逆加密

java不可逆加密

發布時間: 2022-10-31 03:49:59

1. java 加密解密的方法都有哪些

加密解密並非java才有的,所有編程語言都有加密和解密。

目前的加密解密主要可分為以下2大類:

  1. 對稱秘鑰加密:如DES演算法,3DES演算法,TDEA演算法,Blowfish演算法,RC5演算法,IDEA演算法等。其主要特點是加密方和解密方都有同一個密碼,加密方和解密方可以使用秘鑰任意加密解密。

  2. 非對稱密碼加密:這種加密方式加密方僅有加密秘鑰,對加密後的密文無法反向解密,解密方僅有解密秘鑰,無法對明文進行加密。


另外還有一些摘要演算法,比如MD5和HASH此類演算法不可逆,但經常用來作為確認欄位或者對一些重要匹配信息簽名防止明文內容被修改。

2. java中,從資料庫取出來的密碼加密了,用代碼怎麼實現md5解密

md5是不可逆的,只不過用的人多了,就有人創建了一個md5密碼表,應該就是傳說中的彩虹表,蜜要是有這個表就可以了

3. java web開發用戶注冊時密碼加密一般什麼技術

MD5加密,這是一種不可逆的加密演算法,即一旦進行MD5加密演算法,不能再得到原始的密碼

開發者可以將用戶輸入的密碼進行MD5加密後,再與資料庫中存儲的加密後的密碼比較,即可知道密碼的准確性。

若想找回密碼,一種即可以重置密碼,即有一個默認的密碼。重置後,可以自己再修改密碼;另一種即可以通過其他方面的驗證後,來錄入一個新密碼。現在很多都是使用郵箱驗證或是手機隨機驗證,驗證成功後,可以設置新密碼

4. 用JAVA設計一個簡單的加密、解密演算法,用該演算法來實現對數據的加密、解密

給你個MD5的加密演算法

package test;
import java.security.MessageDigest;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

public class StringUtil {

private final static String[] hexDigits = {
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "a", "b", "c", "d", "e", "f"};

/**
* 轉換位元組數組為16進制字串
* @param b 位元組數組
* @return 16進制字串
*/

public static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}

private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}

public static String MD5Encode(String origin) {
String resultString = null;

try {
resultString=new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString=byteArrayToHexString(md.digest(resultString.getBytes()));
}
catch (Exception ex) {

}
return resultString;
}

public static void main(String[] args){
System.err.println(MD5Encode("a"));
}
}

在RFC 1321中,給出了Test suite用來檢驗你的實現是否正確:

MD5 ("") =
MD5 ("a") =
MD5 ("abc") =
MD5 ("message digest") =
MD5 ("abcdefghijklmnopqrstuvwxyz") =

5. 【轉】如何保護Java代碼

以下從技術角度就常見的保護措施 和常用工具來看看如何有效保護java代碼:1. 將java包裝成exe 特點:將jar包裝成可執行文件,便於使用,但對java程序沒有任何保護。不要以為生成了exe就和普通可執行文件效果一樣了。這些包裝成exe的程序運行時都會將jar文件釋放到臨時目錄,很容易獲取。常用的工具有exe4j、jsmooth、NativeJ等等。jsmooth生成的exe運行時臨時目錄在exe所在目錄中或是用戶臨時目錄 中;exe4j生成的exe運行時臨時目錄在用戶臨時目錄中;NativeJ生成的exe直接用winrar打開,然後用zip格式修復成一個jar文件,就得到了原文件。如果只是為了使用和發布方便,不需要保護java代碼,使用這些工具是很好的選擇。2. java混淆器特點:使用一種或多種處理方式將class文件、java源代碼進行混淆處理後生成新的class,使混淆後的代碼不易被反編譯,而反編譯後的代碼難以閱 讀和理解。這類混淆器工具很多,而且也很有成效。缺點:雖然混淆的代碼反編譯後不易讀懂,但對於有經驗的人或是多花些時間,還是能找到或計算出你代碼中隱藏的敏感內容,而且在很多應用中不是全部代碼都能混淆的,往往一些關鍵的庫、類名、方法名、變數名等因使用要求的限制反而還不能混淆。3. 隔離java程序到服務端特點:把java程序放到服務端,讓用戶不能訪問到class文件和相關配套文件,客戶端只通過介面訪問。這種方式在客戶/服務模式的應用中能較好地保護java代碼。缺點是:必須是客戶/服務模式,這種特點限制了此種方式的使用范圍;客戶端因為邏輯的暴露始終是較為薄弱的環節,所以訪問介面時一般都需要安全性認證。4. java加密保護特點:自定義ClassLoader,將class文件和相關文件加密,運行時由此ClassLoader解密相關文件並裝載類,要起到保護作用必須自定 義本地代碼執行器將自定義ClassLoader和加密解密的相關類和配套文件也保護起來。此種方式能很有效地保護java代碼。缺點:可以通過替換JRE包中與類裝載相關的java類或虛擬機動態庫截獲java位元組碼。 jar2exe屬於這類工具。5. 提前編譯技術(AOT) 特點:將java代碼靜態編譯成本地機器碼,脫離通用JRE。此種方式能夠非常有效地保護java代碼,且程序啟動比通用JVM快一點。具有代表性的是GNU的gcj,可以做到對java代碼完全提前編譯,但gcj存在諸多局限性,如:對JRE 5不能完整支持、不支持JRE 6及以後的版本。由於java平台的復雜性,做到能及時支持最新java版本和JRE的完全提前編譯是非常困難的,所以這類工具往往採取靈活方式,該用即時編譯的地方還是 要用,成為提前編譯和即時編譯的混合體。缺點:由於與通用JRE的差異和java運用中的復雜性,並非java程序中的所有jar都能得到完全的保護;只能使用此種工具提供的一個運行環境,如果工具更新滯後或你需要特定版本的JRE,有可能得不到此種工具的支持。 Excelsior JET屬於這類工具。6. 使用jni方式保護特點:將敏感的方法和數據通過jni方式處理。此種方式和「隔離java程序到服務端」有些類似,可以看作把需要保護的代碼和數據「隔離」到動態庫中,不同的是可以在單機程序中運用。缺點和上述「隔離java程序到服務端」類似。7. 不脫離JRE的綜合方式保護特點:非提前編譯,不脫離JRE,採用多種軟保護方式,從多方面防止java程序被竊取。此種方式由於採取了多種保護措施,比如自定義執行器和裝載器、加密、JNI、安全性檢測、生成可執行文件等等,使保護力度大大增強,同樣能夠非常有效地保護java代碼。缺點:由於jar文件存在方式的改變和java運用中的復雜性,並非java程序中的所有jar都能得到完全的保護;很有可能並不支持所有的JRE版本。 JXMaker屬於此類工具。8. 用加密鎖硬體保護特點:使用與硬體相關的專用程序將java虛擬機啟動程序加殼,將虛擬機配套文件和java程序加密,啟動的是加殼程序,由加殼程序建立一個與硬體相關的 受保護的運行環境,為了加強安全性可以和加密鎖內植入的程序互動。此種方式與以上「不脫離JRE的綜合方式保護」相似,只是使用了專用硬體設備,也能很好地保護java代碼。缺點:有人認為加密鎖用戶使用上不太方便,且每個安裝需要附帶一個。從以上描述中我們可以看出:1. 各種保護方式都有其優缺點,應根據實際選用2. 要更好地保護java代碼應該使用綜合的保護措施3. 單機環境中要真正有效保護java代碼,必須要有本地代碼程序配合當然,安全都是相對的,一方面看你的保護措施和使用的工具能達到的程度,一方面看黑客的意願和能力,不能只從技術上保護知識產權。總之,在java 代碼保護方面可以採取各種可能的方式,不可拘泥於那些條條框框。

6. java 開發中。為什麼要有對密碼帳戶進行加密呢。

簡單說
首先
防止內鬼,如果內部人員拿走了資料庫的數據但是他看不懂,那麼這個數據到哪也沒用了。
再者,這樣的數據即使被偷了他們也看不懂,這樣才更安全一些,像密碼這樣的一般採用不可逆的演算法加密,比如MD5
只能把你輸入的密碼跟資料庫加密以後的密碼進行比較而不能解密,這樣,給你一個完整的用戶密碼的資料庫,你也沒法解的。

7. java手機的密碼怎麼破解

無法破解。
解釋:java手機密碼是經過加密程序加密的,加密過程通常具有不可逆性,也就是即使知道加密後的字元串也無法獲取到相應的原有密碼。
備註:建議還是想辦法通過找回密碼,或者是想想原有密碼的形式進行密碼匹配。

8. 同一個字元使用java語言,然後經行md5加密。。每次加密後的密文都是一樣的嗎

一樣的,MD5方法運行一次是加密,運行兩次就是解密了,所以,加密後的字元是相同的

9. JAVA:MD5把a加密成b,還能把b還原成a么

MD5加密演算法是不可逆演算法,所以是不可以還原成a的。

熱點內容
和存儲字長 發布:2025-05-15 21:54:09 瀏覽:514
用什麼寫c語言 發布:2025-05-15 21:35:56 瀏覽:418
linux讀取u盤 發布:2025-05-15 21:32:13 瀏覽:508
c語言dos 發布:2025-05-15 21:18:17 瀏覽:664
sci編譯英文 發布:2025-05-15 21:16:57 瀏覽:383
大貓如何設置密碼 發布:2025-05-15 21:15:32 瀏覽:765
什麼叫蘋果版的和安卓版的手機 發布:2025-05-15 21:05:18 瀏覽:254
編程找點 發布:2025-05-15 20:43:10 瀏覽:588
php上傳臨時文件夾 發布:2025-05-15 20:43:00 瀏覽:658
impala資料庫 發布:2025-05-15 20:42:12 瀏覽:650