---
# System prepended metadata

title: Android 安全加密：非對稱加密詳解
tags: [Tag(Android 技術相關)]

---

# Android 安全加密：非對稱加密詳解

###### tags: `Tag(Android 技術相關)`

## 定義
非對稱加密算法需要兩個密鑰：**公鑰（publickey）**和**私鑰（privatekey）**。公鑰與私鑰是一對，

如果用公鑰對數據進行加密，只有用對應的私鑰才能解密；
如果用私鑰對數據進行加密，那麼只有用對應的公鑰才能解密。

因為加密和解密使用的是兩個不同的密鑰，所以這種算法叫作非對稱加密算法。

簡單理解為：==加密和解密是不同的鑰匙==

在互聯網後端技術中非對稱加密技術主要用於登錄、數字簽名、數字證書認證等場景。

https://case.ntu.edu.tw/blog/?p=29107
![](https://i.imgur.com/9JSzCOD.png)

![](https://i.imgur.com/lfF5MRi.png)


---



## 非對稱加密常用演算法

RSA、DSA、ECDSA

### RSA: 

1977年被麻省理工學院的羅納德·李維斯特（Ron Rivest）、阿迪·薩莫爾（Adi Shamir）和倫納德·阿德曼（Leonard Adleman）三位科學家提出
RSA 是目前應用最廣泛的數字加密和簽名技術，比如國內的支付寶就是通過RSA算法來進行簽名驗證。它的安全程度取決於秘鑰的長度

可以選密鑰長度:
1024位、2048位、4096位

### DSA：

既Digital Signature Algorithm，數字簽名算法，他是由美國國家標準與技術研究所（NIST）與1991年提出。和RSA 不同的是DSA 僅能用於數字簽名，不能進行數據加密解密，其安全性和RSA相當，但其性能要比RSA快。

### ECDSA：

Elliptic Curve Digital Signature Algorithm，橢圓曲線簽名算法，是ECC（Elliptic curve cryptography，橢圓曲線密碼學）和DSA 的結合，橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的，相比於RSA算法，ECC 可以使用更小的秘鑰，更高的效率，提供更高的安全保障，據稱256位的ECC秘鑰的安全性等同於3072位的RSA秘鑰，和普通DSA相比，ECDSA在計算秘鑰的過程中，部分因子使用了橢圓曲線算法。