成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JAVA加密算法(1)- 密碼學(xué)概述及BASE64算法使用

sevi_stuo / 2742人閱讀

密碼學(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é)五元組

明文、密文、加密算法、解密算法、密鑰

加密解密算法都要使用公開算法(經(jīng)過驗(yàn)證)

Java編程中的常用類

(1)消息編碼

BASE64Encoder,BASE64Decoder

(2)消息摘要

MessageDigest

(3)對(duì)稱密碼

KeyGenerator、SecretKey、Cipher

(4)非對(duì)稱密碼

KeyPairGenerator、KeyFactory、KeyPair、PublicKey、PrivateKey、Cipher

(5)數(shù)字簽名

Signature
JDK提供的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

相關(guān)文章

  • 慕課網(wǎng)_《Java實(shí)現(xiàn)Base64加密》學(xué)習(xí)總結(jié)

    摘要:時(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...

    verano 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Java實(shí)現(xiàn)非對(duì)稱加密》學(xué)習(xí)總結(jié)

    摘要:時(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ì)稱...

    dailybird 評(píng)論0 收藏0
  • Android 應(yīng)用安全開發(fā)之淺談加密算法的坑

    摘要:還有很多開發(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è)備的問題,但并不是使用了加...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • killBase系列 -- 碼學(xué)(一)

    摘要:系列密碼學(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í)候,腦子里一片空白,沒有回答上...

    tomato 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<