❶ 如何用JAVA實現字元串簡單加密解密
Java中可以使用多種加密演算法來加密字元串,例如DES演算法。下面通過一個示例來展示如何使用Java實現字元串的加密和解密。
首先,我們需要創建一個密鑰。這可以通過調用`KeyGenerator`類的`getInstance`方法來實現。這里我們以DES演算法為例:
KeyGenerator keygen = KeyGenerator.getInstance("DES");
接下來,我們需要初始化`KeyGenerator`對象,並生成一個密鑰:
keygen.init(512);
使用生成的密鑰進行加密操作。這里我們定義一個方法`encryptToDES`,接受一個密鑰和要加密的信息,返回加密後的信息:
public String encryptToDES(SecretKey key, String info) { ... }
解密操作則通過另一個方法`decryptByDES`來實現,該方法接受密鑰和要解密的密文,返回解密後的信息:
public String decryptByDES(SecretKey key, String sInfo) { ... }
此外,還可以使用其他加密演算法,如MD5和SHA-1。這里提供一個MD5加密方法`encryptToMD5`:
public String encryptToMD5(String info) { ... }
以及一個SHA-1加密方法`encryptToSHA`:
public String encryptToSHA(String info) { ... }
通過這些方法,我們可以方便地對字元串進行加密和解密操作。同時,還可以使用公鑰和私鑰進行數字簽名和驗證,確保信息的完整性和安全性。
示例代碼中還包含了一些輔助方法,如將二進制轉化為16進制字元串`byte2hex`,以及將十六進制字元串轉化為二進制`hex2byte`。這些方法在加密和解密過程中起到了關鍵作用。
通過上述方法,我們可以靈活地在Java中實現字元串的加密和解密,確保數據的安全傳輸和存儲。
❷ 12:字元串加密、解密
編碼: 將計算機中的字元串按照一定的順序表示成二進制數據的過程
各國字元編碼都不一樣:
1、計算機-> 表示[英文字母、數字、部分特殊符號]-> ascii編碼 [0~256]
2、萬國碼,統一字元編碼[號稱可以統一全球范圍內任何語言的表示方式]
任何語言中的任何數據,都可以使用一個字元來表示 unicode編碼
3、中國有GB2312-> GBK -> GB18030
4、數據傳輸編碼:unicode transfer format 8 bit [UTF-8]
python中的編碼解碼:
要命的規則:字元串的編碼解碼,一直都是任何語言中一個難點和重點
任何字元串->都是由位元組組成的!
python3中:字元:(str);位元組(bytes)
字元->位元組:encode 編碼:將一個字元串編碼成計算機可以操作的二進制數據
位元組->字元:decode 解碼:將一個二進制數據按照指定的編碼~解碼成自然數據
什麼是加密: 將一個明文數據,按照指定的演算法,運算得到一個其他的可以隱藏真實信息的密文數據,這個過程稱為加密;處理的演算法稱為加密演算法;用到的關鍵數據稱為密鑰
什麼是解密: 按照指定的演算法和關鍵數據,將一個密文數據進行逆向運算得到正確的明文數據的過程成為解密操作
(1)、單向加密演算法:只能加密,不能解密的演算法
如:用戶賬號密碼(單向加密)存儲,此時任何人都不能查看該用戶的明文密碼
流程->用戶輸入明文密碼->加密->和存儲的密文密碼進行比較->相等-成功
單向散列加密演算法-> MD5加密
單項哈希加密演算法-> SHAX加密
(2)、雙向加密演算法:可以加密,加密的數據可以解密得到明文數據
使用在更多的場景;數據進行加密傳輸->目標地址->解密得到明文數據進行處理
對稱加密:加密和解密使用相同的秘鑰;
非對稱加密:加密和解密使用不同的秘鑰;如HTTPS傳輸數據
hashlib主要提供字元加密功能,將md5和sha模塊整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等演算法
注意: hashlib 加密啊的字元串類型為二進制編碼,直接加密字元串會報如下錯誤:
有兩種方式可以將字元串轉化為二進制數據