日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android安全加密:非对称加密

發布時間:2025/4/16 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android安全加密:非对称加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android安全加密專題文章索引

  • Android安全加密:對稱加密
  • Android安全加密:非對稱加密
  • Android安全加密:消息摘要Message Digest
  • Android安全加密:數字簽名和數字證書
  • Android安全加密:Https編程
  • 1. 介紹

    與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密;如果用私鑰對數據進行加密,那么只有用對應的公鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。

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

    2. 常見算法

    RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等,其中支付寶使用的就是RSA算法

    3. RSA 算法原理

    質因數、歐拉函數、模反元素
    原理很復雜,只需要知道內部是基于分解質因數和取模操作即可

    4. 使用步驟

    //1,獲取cipher 對象 Cipher cipher = Cipher.getInstance("RSA"); //2,通過秘鑰對生成器KeyPairGenerator 生成公鑰和私鑰 KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair(); //使用公鑰進行加密,私鑰進行解密(也可以反過來使用) PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); //3,使用公鑰初始化密碼器 cipher.init(Cipher.ENCRYPT_MODE, publicKey); //4,執行加密操作 byte[] result = cipher.doFinal(content.getBytes()); //使用私鑰初始化密碼器 cipher.init(Cipher.DECRYPT_MODE, privateKey); //執行解密操作 byte[] deResult = cipher.doFinal(result);

    5. 注意點

    //一次性加密數據的長度不能大于117 字節 private static final int ENCRYPT_BLOCK_MAX = 117; //一次性解密的數據長度不能大于128 字節 private static final int DECRYPT_BLOCK_MAX = 128;

    6. 分批操作

    /** * 分批操作 * * @param content 需要處理的數據 * @param cipher 密碼器(根據cipher 的不同,操作可能是加密或解密) * @param blockSize 每次操作的塊大小,單位為字節 * @return 返回處理完成后的結果 * @throws Exception */public static byte[] doFinalWithBatch(byte[] content, Cipher cipher, int blockSize) throwseption {int offset = 0;//操作的起始偏移位置int len = content.length;//數據總長度byte[] tmp;//臨時保存操作結果ByteArrayOutputStream baos = new ByteArrayOutputStream();//如果剩下數據while (len - offset > 0) {if (len - offset >= blockSize) {//剩下數據還大于等于一個blockSizetmp = cipher.doFinal(content, offset, blockSize);}else {//剩下數據不足一個blockSizetmp = cipher.doFinal(content, offset, len - offset);}//將臨時結果保存到內存緩沖區里baos.write(tmp);offset = offset + blockSize;}baos.close();return baos.toByteArray();}

    7. 非對稱加密用途

    身份認證

    一條加密信息若能用A 的公鑰能解開,則該信息一定是用A 的私鑰加密的,該能確定該用戶是A。

    陌生人通信

    A 和B 兩個人互不認識,A 把自己的公鑰發給B,B 也把自己的公鑰發給A,則雙方可以通過對方的公鑰加密信息通信。C 雖然也能得到A、B 的公鑰,但是他解不開密文。

    秘鑰交換

    A 先得到B 的公鑰,然后A 生成一個隨機秘鑰,例如13245768,之后A 用B 的公鑰加密該秘鑰,得到加密后的秘鑰,例如dxs#fd@dk,之后將該密文發給B,B 用自己的私鑰解密得到123456,之后雙方使用13245768 作為對稱加密的秘鑰通信。C 就算截獲加密后的秘鑰dxs#fd@dk,自己也解不開,這樣A、B 二人能通過對稱加密進行通信。

    8. 總結

    非對稱加密一般不會單獨拿來使用,他并不是為了取代對稱加密而出現的,非對稱加密速度比對稱加密慢很多,極端情況下會慢1000 倍,所以一般不會用來加密大量數據,通常我們經常會將對稱加密和非對稱加密兩種技術聯合起來使用,例如用非對稱加密來給稱加密里的秘鑰進行加密(即秘鑰交換)。

    總結

    以上是生活随笔為你收集整理的Android安全加密:非对称加密的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩精品――色哟哟 | 国产人妻精品久久久久野外 | 青青草久久 | 亚洲色图插插插 | 中文字幕在线2018 | 亚洲区 欧美区 | 成人免费无码大片a毛片抽搐色欲 | 亚洲成人精品在线播放 | 欧美草逼视频 | 亚洲精品国产精品乱码不卡√香蕉 | 在线观看成人免费 | 91香草视频| 日韩精品免费播放 | 自拍 亚洲 欧美 | 亚洲一区二区三区影院 | 美女扒开粉嫩尿口 | 九九久久精品 | 免费观看毛片 | 桃色视频网站 | 91av视频在线观看 | 韩国成人理伦片免费播放 | 亚洲福利在线视频 | 九色国产精品 | 国产特级淫片免费看 | 国产三级在线播放 | av地址在线观看 | 欧美大片免费观看 | 日本不卡视频在线播放 | 日韩美女网站 | 黄色高清在线观看 | 激情av在线| 窝窝午夜理论片影院 | 五月婷久久 | 老色驴综合网 | 一区二区三区免费网站 | 中文字幕在线观看精品 | 精品视频站长推荐 | 久久国产精品无码一级毛片 | 日本在线播放 | 国产三级在线免费 | 日本污污网站 | 日韩和欧美一区二区 | 美女扒开腿让男人捅 | 碧蓝之海动漫在线观看免费高清 | 午夜精品久久久久久久久 | 久久黄色av | 日韩欧美高清dvd碟片 | 亚洲一区二区三区四区在线观看 | babes性欧美69 | 少妇特黄a一区二区三区 | 亚洲狼人在线 | 视频一区二区不卡 | 性欧美18一19性猛交 | 欧美色人阁| 成人av播放 | 国产羞羞 | 秋霞影院午夜 | 免费a级片视频 | 亚洲AV成人无码精电影在线 | 超碰美女| 精品免费囯产一区二区三区 | 少妇人妻偷人精品无码视频新浪 | 国产精品久久久久久久天堂 | 91精品一区二区三区在线观看 | 黄色不卡av | 天天干狠狠 | 亚洲三区精品 | 久久xxxx| 日韩免费av | jzzjzzjzz亚洲成熟少妇 | 一区二区三区视频在线观看 | 日韩精品在线一区二区三区 | 国产精品v欧美精品v日韩 | 亚洲一区视频在线播放 | 久久综合久久久久 | 国产小视频在线观看 | 亚洲国产97 | www.色婷婷.com| 中国人妖和人妖做爰 | 久操热久操 | 秋霞99| 日韩精品久久久久久久的张开腿让 | 精品国产乱码久久 | 亚洲av日韩av高潮潮喷无码 | 叶山小百合av一区二区 | www三级 | 国产精品热久久 | 久久国产精品网 | 亚洲无线观看 | 国产中文字幕av | 国内视频一区二区三区 | 青青操国产 | 国产一区二区三区影院 | 欧美高h | 国产精品www在线观看 | 亚洲精品人妻无码 | 好色视频tv | 中文字幕久久一区 | free性欧美69巨大 |