密碼學(xué)綜述 密碼學(xué)基本功能
機(jī)密性、鑒別、報(bào)文完整性、不可否認(rèn)性
基本模型sender-->加密算法 --> 密文 --> 解密算法 --> receiver
密鑰源
密碼學(xué)算法分類:消息編碼:Base64 消息摘要:MD類,SHA類,MAC 對(duì)稱加密:DES,3DES,AES 非對(duì)稱加密:RSA,DH密鑰交換 數(shù)字簽名:RSA signature,DSA signature密碼學(xué)五元組
明文、密文、加密算法、解密算法、密鑰
Java編程中的常用類加密解密算法都要使用公開算法(經(jīng)過驗(yàn)證)
(1)消息編碼
BASE64Encoder,BASE64Decoder
(2)消息摘要
MessageDigest
(3)對(duì)稱密碼
KeyGenerator、SecretKey、Cipher
(4)非對(duì)稱密碼
KeyPairGenerator、KeyFactory、KeyPair、PublicKey、PrivateKey、Cipher
(5)數(shù)字簽名
SignatureJDK提供的Base64編碼操作
import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Util { public static String encrypt(byte[] data) { return new BASE64Encoder().encode(data); } public static String decrypt(String data) throws IOException { return new String(new BASE64Decoder().decodeBuffer(data)); } public static void main(String[] args) throws IOException { String data = "1234567890"; String result = Base64Util.encrypt(data.getBytes()); System.out.println(data +" 使用Base64編碼的結(jié)果: "+result); String result2 = Base64Util.decrypt(result); System.out.println(result + "使用Base64解碼的結(jié)果:" +result2); } }
運(yùn)行結(jié)果:
1234567890 使用Base64編碼的結(jié)果: MTIzNDU2Nzg5MA== MTIzNDU2Nzg5MA==使用Base64解碼的結(jié)果:1234567890
PS1:
Eclipse中找不到sun.misc.BASE64Encoder包的解決方法:
在工程的build path中先移除JRE System Library,再添加庫JRE System Library,重新編譯后就一切正常了。
PS2:
其他提供Base64操作的jar包,
Apache Commons Codec(簡稱CC),
Bouncy Castle(BC)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65201.html
摘要:時(shí)間年月日星期一說明本文部分內(nèi)容均來自慕課網(wǎng)。多用于網(wǎng)絡(luò)加密。散列函數(shù)函數(shù)或消息摘要函數(shù)主要作用散列函數(shù)用來驗(yàn)證數(shù)據(jù)的完整性。 時(shí)間:2017年4月10日星期一說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere...
摘要:時(shí)間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。秘密密鑰,生成一個(gè)分組的秘密密鑰。 時(shí)間:2017年4月12日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 概述 非對(duì)稱...
摘要:還有很多開發(fā)者沒有意識(shí)到的加密算法的問題。不要使用哈希函數(shù)做為對(duì)稱加密算法的簽名。開發(fā)者建議使用基于口令的加密算法時(shí),生成密鑰時(shí)要加鹽,鹽的取值最好來自,并指定迭代次數(shù)。不要使用沒有消息認(rèn)證的加密算法加密消息,無法防重放。 本文作者:阿里移動(dòng)安全@伊樵,@舟海 Android開發(fā)中,難免會(huì)遇到需要加解密一些數(shù)據(jù)內(nèi)容存到本地文件、或者通過網(wǎng)絡(luò)傳輸?shù)狡渌?wù)器和設(shè)備的問題,但并不是使用了加...
摘要:系列密碼學(xué)二傳送門密碼學(xué)一基礎(chǔ)密碼學(xué)算法分類消息編碼消息摘要類,類,對(duì)稱密碼非對(duì)稱密碼數(shù)字簽名五元組明文原始信息。非對(duì)稱密碼包提供給,,等非對(duì)稱加密算法。對(duì)稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因?yàn)槊荑€管理困難,使用成本較高。 前言 最近一場面試,面試官問了我 對(duì)稱加密與非對(duì)稱加密的問題,雖然曾經(jīng)看過一些內(nèi)容,但是沒有系統(tǒng)的整理,所以當(dāng)被問的時(shí)候,腦子里一片空白,沒有回答上...
閱讀 976·2022-06-21 15:13
閱讀 1857·2021-10-20 13:48
閱讀 1045·2021-09-22 15:47
閱讀 1376·2019-08-30 15:55
閱讀 3133·2019-08-30 15:53
閱讀 528·2019-08-29 12:33
閱讀 724·2019-08-28 18:15
閱讀 3472·2019-08-26 13:58