日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JAVA加密算法數字簽名實現原理詳解

瀏覽:103日期:2022-08-22 13:24:28

所謂數字簽名就是信息發送者用其私鑰對從所傳報文中提取出的特征數據(或稱數字指紋)進行 RSA 算法操作,以保證發信人無法抵賴曾發過該信息(即不可抵賴性),同時也確保信息報文在經簽名后末被篡改(即完整性)。當信息接收者收到報文后,就可以用發送者的公鑰對數字簽名進行驗證。

在數字簽名中有重要作用的數字指紋是通過一類特殊的散列函數(HASH 函數)生成的,對這些 HASH 函數的特殊要求是:

1:接受的輸入報文數據沒有長度限制;

2:對任何輸入報文數據生成固定長度的摘要(數字指紋)輸出

3:從報文能方便地算出摘要;

4:難以對指定的摘要生成一個報文,而由該報文反推算出該指定的摘要;

5:兩個不同的報文難以生成相同的摘要

代表:DSA

代碼如下

package test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;import java.security.Signature;public class DSA {public static void main(String[] args) {try {DSA my = new DSA();my.run();} catch (Exception e) {e.printStackTrace();}}public void run() {// 數字簽名生成密鑰// 第一步生成密鑰對,如果已經生成過 , 本過程就可以跳過// 對用戶來講 myprikey.dat 要保存在本地,而 mypubkey.dat 給發布給其它用戶if ((new java.io.File('myprikey.dat')).exists() == false) {if (generatekey() == false) {System.out.println('生成密鑰對敗');return;}}// 第二步 , 此用戶// 從文件中讀入私鑰 , 對一個字符串進行簽名后保存在一個文件 (myinfo.dat) 中// 并且再把 myinfo.dat 發送出去,為了方便數字簽名也放進了 myifno.dat 文件中 , 當然也可分別發送try {ObjectInputStream in = new ObjectInputStream(new FileInputStream('myprikey.dat'));PrivateKey myprikey = (PrivateKey) in.readObject();in.close();String myinfo = '這是我的信息'; // 要簽名的信息// 用私鑰對信息生成數字簽名Signature signet = Signature.getInstance('DSA');signet.initSign(myprikey);signet.update(myinfo.getBytes());byte[] signed = signet.sign(); // 對信息的數字簽名System.out.println('signed( 簽名內容 )=' + byte2hex(signed));// 把信息和數字簽名保存在一個文件中ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream('myinfo.dat'));out.writeObject(myinfo);out.writeObject(signed);out.close();System.out.println('簽名并生成文件成功');} catch (java.lang.Exception e) {e.printStackTrace();System.out.println('簽名并生成文件失敗');}// 第三步 獲得信息檢查// 其他人通過公共方式得到此戶的公鑰和文件// 其他人用此戶的公鑰 , 對文件進行檢查 , 如果成功說明是此用戶發布的信息 .try {ObjectInputStream in = new ObjectInputStream(new FileInputStream('mypubkey.dat'));PublicKey pubkey = (PublicKey) in.readObject();in.close();System.out.println(pubkey.getFormat());in = new ObjectInputStream(new FileInputStream('myinfo.dat'));String info = (String) in.readObject();byte[] signed = (byte[]) in.readObject();in.close();Signature signetcheck = Signature.getInstance('DSA');signetcheck.initVerify(pubkey);signetcheck.update(info.getBytes());if (signetcheck.verify(signed)) {System.out.println('info=' + info);System.out.println('簽名正常');} elseSystem.out.println('非簽名正常');} catch (java.lang.Exception e) {e.printStackTrace();};}// 生成一對文件 myprikey.dat 和 mypubkey.dat 私鑰和公鑰// 公鑰要用戶發送 ( 文件 , 網絡等方法 ) 給其它用戶 , 私鑰保存在本地public boolean generatekey() {try {KeyPairGenerator keygen = KeyPairGenerator.getInstance('DSA');keygen.initialize(512);KeyPair keys = keygen.genKeyPair();PublicKey pubkey = keys.getPublic();PrivateKey prikey = keys.getPrivate();ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream('myprikey.dat'));out.writeObject(prikey);out.close();System.out.println('寫入對象 prikeys ok');out = new ObjectOutputStream(new FileOutputStream('mypubkey.dat'));out.writeObject(pubkey);out.close();System.out.println('寫入對象 pubkeys ok');System.out.println('生成密鑰對成功');return true;} catch (java.lang.Exception e) {e.printStackTrace();System.out.println('生成密鑰對失敗');return false;}}public String byte2hex(byte[] b) {String hs = '';String stmp = '';for (int n = 0; n < b.length; n++) {stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));if (stmp.length() == 1)hs = hs + '0' + stmp;elsehs = hs + stmp;if (n < b.length - 1)hs = hs + ':';}return hs.toUpperCase();}}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
婷婷精品在线| 国产精品毛片久久| 国产精品成人一区二区网站软件| 久久久久久婷| 美女性感视频久久| 国产免费播放一区二区| 国产私拍福利精品视频二区| 亚洲青青久久| 97se亚洲| 国产 日韩 欧美 综合 一区| 国产在线一区不卡| 日韩电影二区| 亚洲免费高清| 综合激情一区| 日韩精品1区2区3区| 欧美99久久| 先锋亚洲精品| 噜噜噜久久亚洲精品国产品小说| 久久毛片亚洲| 国精品产品一区| 久久伦理在线| 亚洲韩日在线| 一区二区亚洲视频| 日本伊人久久| 麻豆极品一区二区三区| 国产成人免费精品| 女人av一区| 久久精品72免费观看| 福利片在线一区二区| 亚洲激情二区| 欧美国产专区| 亚州av乱码久久精品蜜桃| 欧美日韩a区| 97精品国产福利一区二区三区| 欧美日韩国产高清| 国产亚洲欧美日韩在线观看一区二区 | 亚洲激情久久| 欧美中文一区| 激情欧美日韩一区| 爽爽淫人综合网网站| 国产精品啊啊啊| 成人羞羞在线观看网站| 性一交一乱一区二区洋洋av| 日韩国产一二三区| 久久久久久久久丰满| 午夜国产精品视频免费体验区| 中文久久精品| 国产精品欧美大片| 男人的天堂亚洲一区| 婷婷成人在线| 精品三级久久久| 国产色噜噜噜91在线精品| 免费在线观看成人| 欧美在线亚洲综合一区| 欧美黄页在线免费观看| 日韩视频二区| 久久永久免费| 婷婷亚洲成人| 在线日韩视频| 欧美日韩免费观看视频| 一本一道久久a久久| 成人午夜网址| 国产精品亚洲欧美日韩一区在线 | 亚洲免费影视| 午夜国产精品视频免费体验区| 欧美日韩在线观看首页| 成人台湾亚洲精品一区二区| 国产午夜久久av| 久久久精品国产**网站| 久久精品五月| 久久91导航| 中文字幕色婷婷在线视频| 日韩电影免费网址| 国产99久久| 玖玖玖国产精品| 免费成人在线影院| 91亚洲无吗| 成人免费一区| 婷婷激情图片久久| 日韩一区二区三区四区五区| 欧美日韩99| 热三久草你在线| 伊人久久婷婷| 日本不卡一二三区黄网| 久久天堂影院| 欧美一区二区三区激情视频| 欧美特黄a级高清免费大片a级| 亚洲精品护士| 久久一区欧美| 亚洲永久字幕| 老色鬼精品视频在线观看播放| 99久久99视频只有精品| 亚洲欧美专区| 国产在线看片免费视频在线观看| 黄色在线一区| 久久精品免费看| 国产视频久久| 麻豆中文一区二区| 婷婷综合激情| 麻豆精品少妇| 视频一区国产视频| 国产精品99久久久久久董美香| 日韩精品水蜜桃| 欧美一区91| 在线综合亚洲| 91精品蜜臀一区二区三区在线| 日韩av电影一区| 99综合视频| 999国产精品视频| 国产欧美精品| 亚洲精品动态| 99成人在线| 91精品精品| 中文在线а√天堂| 国产精品日本一区二区三区在线| 蜜臀久久99精品久久久久久9 | 另类中文字幕国产精品| 欧美日一区二区三区在线观看国产免 | 亚洲大全视频| 97国产成人高清在线观看| 国产日韩欧美高清免费| 日本不卡视频在线| 丝袜国产日韩另类美女| 女人天堂亚洲aⅴ在线观看| 国产一区二区三区四区二区| 国产乱人伦精品一区| 国产亚洲一区二区三区啪| 亚州av日韩av| 国产欧美日韩视频在线| 91亚洲精品在看在线观看高清| 亚洲精品亚洲人成在线观看| 香蕉久久夜色精品国产| 中文字幕免费一区二区| 水蜜桃久久夜色精品一区的特点| 亚洲色诱最新| 日韩精品一区二区三区中文| 欧美一区免费| 丰满少妇一区| 久久久久久久久丰满| 99久久久国产精品美女| 久久久久99| 亚洲在线网站| 91成人在线网站| 国产精品国产一区| 女主播福利一区| 亚洲精品人人| 国产精品精品| 国产精品丝袜xxxxxxx| 日本中文字幕不卡| 美女视频网站久久| 精品捆绑调教一区二区三区| 国产主播一区| 国产精品任我爽爆在线播放| 日韩av免费大片| 一本色道精品久久一区二区三区| 亚洲一区二区三区四区电影| 国产无遮挡裸体免费久久| 亚洲成a人片| 日韩av网站在线免费观看| 欧美好骚综合网| 日韩不卡在线观看日韩不卡视频| 正在播放日韩精品| 日韩三区四区| av一区在线| 国产精品亚洲欧美一级在线| 国产韩日影视精品| 精品美女在线视频| 亚洲麻豆一区| 久久蜜桃av| 国产精品久久久久蜜臀| 亚洲欧洲一区二区天堂久久| 国产成人精品一区二区三区在线| 免费的成人av| 国产中文一区| 六月婷婷综合| 你懂的亚洲视频| 日韩精品免费视频一区二区三区| 国产 日韩 欧美一区| 精品视频在线观看网站| 日韩动漫一区| 亚洲精品少妇| 亚洲一区成人| 在线观看免费一区二区| 久久91导航| 日韩国产一区| 国产精品激情| 日韩动漫一区| 欧美视频二区| 日韩精品一区二区三区中文在线 | 日本精品国产| 欧美国产91| 亚洲高清影视| 亚洲精品一区二区妖精| 国产一区日韩欧美| 欧美在线亚洲综合一区| 好吊日精品视频| 99久久夜色精品国产亚洲1000部| av资源亚洲| 欧美高清不卡| 九九综合在线|