前言
數(shù)據(jù)加密,是一門歷史悠久的技術(shù),指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪模饷軇t是通過解密算法和解密密鑰將密文恢復(fù)為明文。它的核心是密碼學(xué)。
數(shù)據(jù)加密目前仍是計(jì)算機(jī)系統(tǒng)對信息進(jìn)行保護(hù)的一種最可靠的辦法。它利用密碼技術(shù)對信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽從而起到保護(hù)信息的安全的作用。
項(xiàng)目中使用Socket進(jìn)行文件傳輸過程時(shí),需要先進(jìn)行加密。實(shí)現(xiàn)的過程中踏了一些坑,下面對實(shí)現(xiàn)過程進(jìn)行一下總結(jié)。
DES加密
由于加密過程中使用的是DES加密算法,下面貼一下DES加密代碼:
//秘鑰算法 private static final String KEY_ALGORITHM = "DES"; //加密算法:algorithm/mode/padding 算法/工作模式/填充模式 private static final String CIPHER_ALGORITHM = "DES/ECB/PKCS5Padding"; //秘鑰 private static final String KEY = "12345678";//DES秘鑰長度必須是8位 public static void main(String args[]) { String data = "加密解密"; KLog.d("加密數(shù)據(jù):" + data); byte[] encryptData = encrypt(data.getBytes()); KLog.d("加密后的數(shù)據(jù):" + new String(encryptData)); byte[] decryptData = decrypt(encryptData); KLog.d("解密后的數(shù)據(jù):" + new String(decryptData)); } public static byte[] encrypt(byte[] data) { //初始化秘鑰 SecretKey secretKey = new SecretKeySpec(KEY.getBytes(), KEY_ALGORITHM); try { Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] result = cipher.doFinal(data); return Base64.getEncoder().encode(result); } catch (Exception e) { e.printStackTrace(); } return null; } public static byte[] decrypt(byte[] data) { byte[] resultBase64 = Base64.getDecoder().decode(data); SecretKey secretKey = new SecretKeySpec(KEY.getBytes(), KEY_ALGORITHM); try { Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] result = cipher.doFinal(resultBase64); return result; } catch (Exception e) { e.printStackTrace(); } return null; }
當(dāng)前題目:詳解Android使用Socket對大文件進(jìn)行加密傳輸-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.rwnh.cn/article6/podig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站改版、企業(yè)網(wǎng)站制作、外貿(mào)建站、用戶體驗(yàn)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容