python中rsa的RSA
使用rsa模組實現RSA加密
RSA
RSA為非對稱加密, 有兩種10進位制的金鑰來實現加密解密.
- 公鑰: 是服務端公開的一種金鑰, 是公開的任何人都可以知道, 其獲得的金鑰一般由長度256的十六進位制字串和十六進位制的’10001’構成.
- 私鑰: 是服務端非公開的一種金鑰, 是私有化在服務端內部的, 常人是不知道的.
過程大致為: 使用公鑰在客戶端加密需要加密的資料, 然後傳送到伺服器端使用私鑰解密.
python程式碼
import rsa
import binascii
# 公鑰key會構成常為n, e值即256和'10001'.
public_key_n = '8d7e6949d411ce14d7d233d7160f5b2cc753930caba4d5ad24f923a505253b9c' \
'39b09a059732250e56c594d735077cfcb0c3508e9f544f101bdf7e97fe1b0d97f2' \
'73468264b8b24caaa2a90cd9708a417c51cf8ba35444d37c514a0490441a773ccb12'
\
'1034f29748763c6c4f76eb0303559c57071fd89234d140c8bb965f9725'
public_key_e = '10001'
# 轉換為RSA可使用的十進位制型別.
rsa_n = int(public_key_n, 16)
rsa_e = int(public_key_e, 16)
data = "需要加密的資料"
# 使用n, e值生成公鑰.
key = rsa.PublicKey(rsa_n, rsa_e)
# 用公鑰把資料加密.
endata = rsa.encrypt(data.encode(), key)
endata = binascii.b2a_hex(endata)
print(endata)
# 以string型別 輸出. 資料很長...
print(endata.decode())
流程
1.準備好合適建立公鑰的n, e值(十進位制)和需加密的資料.
2.使用n, e值生成公鑰.
3.使用encrypt生成加密後的資料.
4.可使用binascii來講密文格式化輸出.
# 沒有金鑰當然是沒得解密了.
相關文章
- RSA加密加密
- python RSA簽名和解籤Python
- RSA的傻瓜原理
- RSA加密解密原理深度剖析(附CTF中RSA題型實戰分析)加密解密
- java RSA 解密Java解密
- RSA入門
- javascript RSA 加密JavaScript加密
- LUC_RSA
- PHP中RSA加密演算法的使用PHP加密演算法
- RSA加密遇到的坑加密
- python實現aes加密解密,RSA簽名和驗籤,RSA加密解密,並呼叫介面Python加密解密
- RSA演算法與Python實現演算法Python
- php中aes加密和rsa加密的區別PHP加密
- RSA 數學原理
- RSA加密與解密加密解密
- C# RSA 加密C#加密
- RSA演算法演算法
- RSA加密檔案加密
- [譯]RSA Tool Help
- RSA進階(一)
- RSA加密演算法加密演算法
- RSA演算法原理演算法
- RSA演算法(一)演算法
- Java RSA 分段加解密Java解密
- php rsa長文加密解密PHP加密解密
- 攻防世界-easy_RSA
- RSA簽名的PSS模式模式
- C#與Java的RSA(3)C#Java
- RSA演算法,自己的理解!演算法
- RSA演算法原理——(3)RSA加解密過程及公式論證演算法解密公式
- 2010年RSA大會RSA總裁主題演講:雲的安全
- Mac OS上執行openssl命令操作,生成RSA私鑰和RSA公鑰Mac
- iOS逆向——從RSA說起iOS
- mysql RSA private key file not foundMySql
- Java之RSA加解密解析Java解密
- RSA 非對稱加密&解密加密解密
- RSA總結 From La神
- RSA演算法簡介演算法