導航:首頁 > 文檔加密 > 安卓rsa介面參數加密

安卓rsa介面參數加密

發布時間:2025-03-09 06:39:22

『壹』 RSA加密填充方式

RSA加密常用的填充方式有下面3種:

1.RSA_PKCS1_PADDING 填充模式,最常用的模式

要求:

輸入:必須 比 RSA 鑰模長(molus) 短至少11個位元組, 也就是RSA_size(rsa) – 11。如果輸入的明文過長,必須切割,然後填充

輸出:和molus一樣長

根據這個要求,對於512bit的密鑰,block length = 512/8 – 11 = 53 位元組

2.RSA_PKCS1_OAEP_PADDING

輸入:RSA_size(rsa) – 41

輸出:和molus一樣長

3.for RSA_NO_PADDING不填充

輸入:可以和RSA鑰模長一樣長,如果輸入的明文過長,必須切割,然後填充

輸出:和molus一樣長

跟DES,AES一樣,RSA也是一個塊加密演算法( block cipher algorithm),總是在一個固定長度的塊上進行操作。但跟AES等不同的是,block length是跟key length有關的。每次RSA加密的明文的長度是受RSA填充模式限制的,但是RSA每次加密的塊長度就是key length。

需要注意:

假如你選擇的秘鑰長度為1024bit共128個byte:

1.當你在客戶端選擇RSA_NO_PADDING填充模式時,如果你的明文不夠128位元組加密的時候會在你的明文前面,前向的填充零。解密後的明文也會包括前面填充的零,這是伺服器需要注意把解密後的欄位前向填充的零去掉,才是真正之前加密的明文。

2.當你選擇RSA_PKCS1_PADDING填充模式時,如果你的明文不夠128位元組加密的時候會在你的明文中隨機填充一些數據,所以會導致對同樣的明文每次加密後的結果都不一樣。對加密後的密文,伺服器使用相同的填充方式都能解密。解密後的明文也就是之前加密的明文。

3.RSA_PKCS1_OAEP_PADDING填充模式沒有使用過, 他是PKCS#1推出的新的填充方式,安全性是最高的,和前面RSA_PKCS1_PADDING的區別就是加密前的編碼方式不一樣。

java默認RSA實現

一個優秀的加密必須每次生成的密文都不一致,即使每次你的明文一樣、使用同一個公鑰。因為這樣才能把明文信息更安全地隱藏起來。

Java 默認的 RSA 實現是 "RSA/None/PKCS1Padding"(比如 Cipher cipher = Cipher.getInstance("RSA");句,這個 Cipher 生成的密文總是不一致的),Bouncy Castle 的默認 RSA 實現是 "RSA/None/NoPadding"。

為什麼 Java 默認的 RSA 實現每次生成的密文都不一致呢,即使每次使用同一個明文、同一個公鑰?這是因為 RSA 的 PKCS #1 padding 方案在加密前對明文信息進行了隨機數填充。

你可以使用以下辦法讓同一個明文、同一個公鑰每次生成同一個密文,但是你必須意識到你這么做付出的代價是什麼。比如,你可能使用 RSA 來加密傳輸,但是由於你的同一明文每次生成的同一密文,攻擊者能夠據此識別到同一個信息都是何時被發送。

『貳』 為什麼rsa加密時我把密鑰長度設成256位,太長的字元串加密

在RSA加密中,選擇密鑰長度為256位是一個常見的做法,但這並非無懈可擊。為了深入理解為什麼密鑰長度至關重要,我們首先需要明確RSA加密的基本原理。RSA基於兩個基本的數學原理:大數分解的困難性和模運算的性質。它是一種非對稱加密演算法,使用一對密鑰:公鑰和私鑰。

在實際應用中,RSA加密不僅僅是對明文進行加密,而是在特定格式下處理數據。這種格式,即padding,對於保護數據安全至關重要。通過padding,可以確保明文數據在加密之前具有一定的隨機性,從而增強數據的安全性,防止多種攻擊,包括選擇明文攻擊和密碼分析。

例如,考慮使用非常小的參數進行RSA加密,如短公鑰和密鑰長度。在這種情況下,加密數據可能具有較低的隨機性,使得通過簡單的數學操作(如計算三次根)輕易地恢復原始明文成為可能。這種攻擊策略在密鑰長度較短的情況下尤其有效,因為它允許攻擊者通過有限的嘗試來解密數據。

為了解決這一問題,RSA加密標准如PKCS #1 v2.1引入了特定的padding模式。這種padding確保了明文數據在加密前具有足夠的隨機性,同時通過特定的格式和規則,增加了密鑰的復雜度和安全性。例如,padding可能包括一個固定前導零位元組、一個標識符(如0x02)和一個隨機生成的前綴(PS),後跟明文數據和一個終止零位元組。

這種padding不僅增加了數據的隨機性,還通過引入額外的復雜性,使得攻擊者難以利用數學漏洞來破解加密數據。同時,padding的引入還防止了特定類型的攻擊,如Chinese Remainder Theorem(CRT)攻擊,這種攻擊依賴於在不同模數下解密的特性。通過遵循標準的padding規則,可以顯著減少此類攻擊的威脅。

綜上所述,選擇256位或更長的密鑰長度,並遵循適當的padding規則,是確保RSA加密安全性的關鍵因素。這種做法不僅可以保護數據免受簡單攻擊,還能抵禦更復雜的密碼分析和技術攻擊,為通信和數據保護提供堅實的防線。

『叄』 android中自帶的RSA加密演算法和JAVA中的不是一個標準的嗎

有點區別,java中默認填充方式是RSA/ECB/PKCS1Padding,Cipher.getInstance("RSA/ECB/PKCS1Padding");android不是

java
Cipher cipher =
Cipher.getInstance("RSA/ECB/PKCS1Padding");
android
Cipher cipher =
Cipher.getInstance("RSA/ECB/NoPadding");

『肆』 求安卓加密,安卓應用加密方式

android是用java語言開發的,java語言,JDK給我們提供了非常多的加密演算法

如基本的單向加密演算法:

  1. BASE64 嚴格地說,屬於編碼格式,而非加密演算法

  2. MD5(Message Digest algorithm 5,信息摘要演算法)

  3. SHA(Secure Hash Algorithm,安全散列演算法)

  4. HMAC(Hash Message Authentication Code,散列消息鑒別碼)


復雜的對稱加密(DES、PBE)、非對稱加密演算法:

  1. DES(Data Encryption Standard,數據加密演算法)

  2. PBE(Password-based encryption,基於密碼驗證)

  3. RSA(演算法的名字以發明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)DH(Diffie-Hellman演算法,密鑰一致協議)

  4. DSA(Digital Signature Algorithm,數字簽名)

  5. ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學)


以下就是講解BASE64、MD5、SHA、HMAC幾種方法

MD5、SHA、HMAC這三種加密演算法,可謂是非可逆加密,就是不可解密的加密方法。我們通常只把他們作為加密的基礎。單純的以上三種的加密並不可靠。


一. BASE64
按 照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位位元組描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
常見於郵件、http加密,截取http信息,你就會發現登錄操作的用戶名、密碼欄位通過BASE64加密的。


二. MD5

MD5 -- message-digest algorithm 5 (信息-摘要演算法)縮寫,廣泛用於加密和解密技術,常用於文件校驗。校驗?不管文件多大,經過MD5後都能生成唯一的MD5值。好比現在的ISO校驗,都 是MD5校驗。怎麼用?當然是把ISO經過MD5後產生MD5的值。一般下載linux-ISO的朋友都見過下載鏈接旁邊放著MD5的串。就是用來驗證文 件是否一致的。


三. SHA

SHA(Secure Hash Algorithm,安全散列演算法),數字簽名等密碼學應用中重要的工具,被廣泛地應用於電子商務等信息安全領域。雖然,SHA與MD5通過碰撞法都被破解了, 但是SHA仍然是公認的安全加密演算法,較之MD5更為安全。


四. HMAC
HMAC(Hash Message Authentication Code,散列消息鑒別碼,基於密鑰的Hash演算法的認證協議。消息鑒別碼實現鑒別的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個 標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然後傳輸。接收方利用與發送方共享的密鑰進行鑒別認證 等。

閱讀全文

與安卓rsa介面參數加密相關的資料

熱點內容
程序員抽煙找靈感 瀏覽:767
老火湯pdf 瀏覽:224
少有人走的路與心靈對話pdf 瀏覽:205
兩單片機串口通信 瀏覽:801
程序員過試用期 瀏覽:108
演算法信息量不可計算 瀏覽:954
android淘寶防止反編譯 瀏覽:788
PIC單片機的內核寄存器 瀏覽:725
擠黑頭解壓視頻耳朵 瀏覽:771
可編程序控制器及其應用實訓總結 瀏覽:755
mcu單片機負載電路 瀏覽:57
解壓員工培訓游戲 瀏覽:283
局網怎麼設置伺服器地址 瀏覽:208
路由器如何關掉虛擬伺服器埠 瀏覽:845
Mac調整PDF 瀏覽:184
華為c6s雲伺服器能幹什麼 瀏覽:880
免費簡歷模板pdf 瀏覽:15
java查詢資料庫表 瀏覽:476
網站無法解析伺服器的dns地址 瀏覽:350
模型腳本反編譯教程 瀏覽:175