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

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

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

瀏覽:105日期: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久久,三上悠亚国产精品一区二区三区
日韩欧美一区二区三区免费看| 久久不卡国产精品一区二区| 麻豆视频在线看| 精品网站999| 国产精品v日韩精品v欧美精品网站| 日韩av三区| 国产精品一区二区av交换| 国产乱码精品一区二区三区四区| 国产福利一区二区精品秒拍 | 最新亚洲一区| 99成人在线视频| 伊人久久大香线蕉av不卡| 国产一区欧美| 日韩在线一区二区| 日本精品另类| 精品欠久久久中文字幕加勒比| 高清一区二区三区av| 精品亚洲成人| 91精品国产自产在线观看永久∴ | 综合激情网站| 亚洲精品亚洲人成在线观看| 美女视频网站久久| 久久毛片亚洲| 国产一区亚洲| 丝袜亚洲精品中文字幕一区| 夜久久久久久| 日韩国产在线不卡视频| 欧美极品中文字幕| 福利精品一区| 亚洲成人一区| 亚洲精品少妇| 欧美一级网址| 色婷婷久久久| 欧美日韩一区自拍| 美女性感视频久久| 午夜精品成人av| 黄色成人91| 日韩午夜视频在线| 国产一区二区三区探花| 国产99久久| 日韩精品一区二区三区中文在线 | 亚洲精品少妇| 免费看欧美美女黄的网站| 日韩极品在线观看| 91亚洲国产成人久久精品| 99国产精品久久久久久久 | 免费在线亚洲| 国产综合精品一区| 国产精品tv| 欧美aaaaaa午夜精品| 深夜视频一区二区| 亚洲精品亚洲人成在线观看| 精品国产网站| 91精品啪在线观看国产18 | 久久大逼视频| 亚洲一二av| 久久这里只有| 亚洲精华国产欧美| 国产日韩高清一区二区三区在线| 日韩毛片视频| 亚洲精品国模| 欧美成人a交片免费看| 蜜桃传媒麻豆第一区在线观看| 日韩欧美精品综合| 日本视频中文字幕一区二区三区| 色乱码一区二区三区网站| 99国产精品自拍| 免费亚洲一区| japanese国产精品| 欧美日韩免费观看视频| 国产一区清纯| 久久久国产精品网站| av亚洲在线观看| 尤物tv在线精品| 久久精品国产福利| 亚洲调教视频在线观看| 日韩精品欧美大片| 国产精品久av福利在线观看| 亚洲一级大片| 国产精品永久| 亚洲va中文在线播放免费| 免费久久久久久久久| 你懂的网址国产 欧美| 国产剧情在线观看一区| 久久久久99| 精品1区2区3区4区| 99久久夜色精品国产亚洲狼| aⅴ色国产欧美| 久久高清精品| 国产精品久久久久久久免费软件| 久草免费在线视频| 久久久精品日韩| 日韩欧美一区免费| 麻豆mv在线观看| 国产精品一区二区精品| 国产精品毛片在线看| 日韩中文视频| 久久亚洲风情| 亚洲精品三级| 亚洲欧美伊人| 在线综合视频| 国产欧美综合一区二区三区| 亚洲无线观看| 国产三级精品三级在线观看国产| 国产aa精品| 欧美一区二区三区激情视频| 天堂精品久久久久| 蜜桃av在线播放| 免费成人在线视频观看| 亚洲一区二区动漫| 国产盗摄——sm在线视频| 蜜臀精品一区二区三区在线观看| 97欧美在线视频| 午夜在线精品偷拍| 免费欧美一区| av在线资源| 免费观看日韩电影| 国产成人精品一区二区免费看京 | 日韩精品一二三区| 日韩精品麻豆| 高清一区二区三区| 久久久91麻豆精品国产一区| 国产精品一区二区三区美女| 日韩av午夜在线观看| 一区免费视频| 欧美成人午夜| 蜜臀久久99精品久久一区二区| 日韩在线短视频| 日韩欧美精品一区| 日韩亚洲一区在线| 中文字幕在线官网| 成人午夜亚洲| 成人在线视频中文字幕| 久久久久久色 | 国产精品一线天粉嫩av| 综合精品一区| 日韩午夜视频在线| 免费在线成人网| 亚洲丝袜美腿一区| 综合在线一区| 日韩精品欧美大片| 国产精品欧美一区二区三区不卡| 欧美国产极品| 成人三级高清视频在线看| 麻豆理论在线观看| 99久久夜色精品国产亚洲1000部| 成人av二区| 2023国产精品久久久精品双| 亚洲二区三区不卡| 久久亚洲精品伦理| 日韩高清国产一区在线| 国产精品一二| 都市激情国产精品| 欧美成人高清| 婷婷亚洲成人| 欧美精品97| 成人福利av| 99在线|亚洲一区二区| 亚洲伊人影院| 国产毛片精品久久| 国产一区二区三区91| 色吊丝一区二区| 麻豆9191精品国产| 四虎精品一区二区免费| 国产精品黄色| 日韩中文字幕高清在线观看| 国产精品分类| 亚洲综合另类| 免费精品视频在线| 日本欧美一区二区| 国产精品亚洲一区二区在线观看| 久久av免费看| 日韩欧美一区免费| 午夜一区在线| 欧美精品aa| 日韩免费小视频| 亚洲资源在线| 国产aa精品| 亚洲精品电影| 欧美激情麻豆| 99视频在线精品国自产拍免费观看| 91精品一区| 91精品亚洲| 欧美精品观看| 欧美a级片一区| 欧美黄色精品| 老鸭窝亚洲一区二区三区| 精品伊人久久| 石原莉奈一区二区三区在线观看| 久久a爱视频| 久热re这里精品视频在线6| 欧美aaaaaa午夜精品| 好吊视频一区二区三区四区| 亚洲乱亚洲高清| 麻豆理论在线观看| 日本免费一区二区视频| 精品国产乱码久久久| 国产亚洲精品v| 视频在线观看国产精品| 欧美久久一区二区三区|