Java密碼學[转]

MOSFET和IGBT栅极驱动器电路的基本原理学习(2) 1.PWM直接驱动 驱动主开关晶体管栅极的最简单方法是利用 PWM 控制器的栅极驱动输出,如图 (1)如 图 8中所示,PWM 控制器和 MOSFET 之间可能有较大距离。由于栅极驱动和接地环路迹线形成的环路,这个距离形成了寄生电感,从而降低了开关速度,并导致栅极驱动波形中形成振铃。为了降低与栅极驱动连接相关的电感,需要更宽的 PCB 迹线。 (2)直接栅极驱动的另一个问题是PWM 控制器的驱动电流能力有限。极少有集成电路能提供高于 1A 的峰值栅极驱动能力。 2.旁路电容的确定 (1)位置 如果是独立的 阅读详情

原文地址:http://my.so-net.net.tw/idealist/Java/Cryptogram.html

1. 密碼學簡介 – 加密與解密
加密是一個將欲加密的資料用一些數學運算轉成一團令人看不懂的東西的過程; 解密則是將加密文轉換回原始文字的過程。這個過程中,扮演原始文字與加密文字之間轉換的數學演算法稱為Cipher。

圖1 Cipher的運作

現代的Cipher多半會用Key來加密與解密資料。所謂Key是指一個機密值,我們可將它視為一通行密碼。加密文字必需使用對映的Key才能解密為原始文字。
  A. 對稱型Cipher
對稱型Cipher在傳送端與接收端所用的Key是一樣的,如圖2所示,對稱型Cipher又叫Private Key Cipher,因為Key 的值只有傳送端和接收端知道。如果有第三者知道了Private Key值,也就能解開加密的資料。

圖2 對稱型Cipher的運作

  B. 非對稱型Cipher
非對稱型的Cipher又叫Public Key Cipher,Cipher除了Private Key外,還會引進一可以隨意散發的Public Key。被 Public Key加密的資料只有相對映的Private Key可以解開,同樣的被Private Key加密的資料也只有相對映的Public Key 可以解開。如圖3所示,顯示了非對稱型Cipher的運作過程。

圖3 非對稱型Cipher的運作

  C. 訊息摘要 (Message Digest)
訊息摘要是從一組輸入資料計算所得的一個特別數字,其原理運作就如hash function一般。在密碼學的運用裡,一般是用來驗證資料是否被竄改。

2. JCE下載
因為美國法規的限制,Sun在JDK裡只提供了少數的加密方法,其餘大部份則只在SunJCE裡提供,而且SunJCE的 API限制只有美國、加拿大地區可以下載。表1為Sun及SunJCE分別支援的加密演算法。

 

名稱

型別

Sun

MD5

訊息摘要

SHA-1

訊息摘要

DSA

簽章

SunJCE

HmacMD5

MAC

HmacSHA1

MAC

DES

對稱型Cipher

DESede

非對稱型Cipher

PBEWithMD5AndDES

對稱型Cipher

DH

Key的交換

表1 Sun及SunJCE支援的加密演算法

雖然美國法規有這樣的限定,但是在美國境外也已經有廠商實作出JCE,並且可以在網路上直接下載,表2就是下載網址的列表。

套件

網址

免費

JCE

http://java.sun.com/products/jdk/1.2/jce/

是

Cryptix

http://www.cryptix.org/

是

IAIK

http://wwwjce.iaik.tu-graz.ac.at/

否

表2 JCE軟體下載網址

3. JCE安裝

  • 解壓縮到JDK目錄下
  • Set ClassPath= C:/JDK/bin/cryptix-jce-api.jar;C:/JDK/bin/cryptix-jce-compat.jar;C:/JDK/bin/cryptix-jce-provider.jar …
  • 在JDK/lib/security/java.security中加入
    security.provider.1=sun.security.provider.Sun (原來就有的)
    security.provider.2=cryptix.jce.provider.Cryptix (加入)


4. 程式範例
在舉例之前,我先完成一個公用類別,用來將字串轉成十六進位表示法。
public class Msg {
 public static String toHexString(byte[] b) {
  StringBuffer hexString = new StringBuffer();
  String plainText;

  for (int i = 0; i < b.length; i++) {
   plainText = Integer.toHexString(0xFF & b[i]);
   if (plainText.length() < 2) {
    plainText = "0" + plainText;
   }
   hexString.append(plainText);
  }
  return hexString.toString();
 }
}

5. 訊息摘要 (message digest, 以SHA1為例)
  產生訊息摘要的步驟:

  • 呼叫getInstance取得MessageDigest實體
  • 呼叫update將資料餵給MessageDigest
  • 呼叫digest產生訊息摘要


import java.security.*;

public class SHA extends Object {
 public static void main(String[] args) throws Exception
 {
  MessageDigest md = MessageDigest.getInstance("SHA");
  md.update(args[0].getBytes());
  byte[] digest = md.digest();
  System.out.println(Msg.toHexString(digest));
 }
}

ps. 比較兩個訊息摘要是否相同時,可呼叫isEqual。

6. 訊息認證碼 (MAC, 以HmacSHA1為例)
訊息認證碼只是在產生訊息摘要的過程裡,加進一把key做為保護,目的是使訊息摘要更難被破解。
  產生訊息認證碼的步驟:

  • 利用密碼產生一把key
  • 呼叫getInstance取得Mac實體
  • 呼叫init,初始化Mac
  • 呼叫update餵資料給Mac
  • 呼叫doFinal產生訊息認證碼


import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;

public class MacSHA {
 public static void main(String[] args)
 {
  SecureRandom sr = new SecureRandom();
  byte[] keyBytes = new byte[20];
  sr.nextBytes(keyBytes);
  SecretKey key = new SecretKeySpec(keyBytes, "HmacSHA");

  try {
   Mac m = Mac.getInstance("HmacSHA");
   m.init(key);
   m.update(args[0].getBytes());
   byte[] mac = m.doFinal();
   System.out.println(Msg.toHexString(mac));
  }
  catch (Exception e) {
   System.out.println("Exception!!");
  }
 }
}


7. 加密與解密 (以DES為例)
這裡舉的加密/解密是屬對稱型Cipher; 在金融交易裡,常用對稱型Cipher來加/解密資料。
  加密/解密的步驟:

  • 利用密碼產生一把key
  • 呼叫getInstance產生一個Cipher物件
  • 呼叫init設定為加密或解密
  • 加密/解密


import java.io.*;
import java.security.*;
import javax.crypto.*;

public class PwdDES {
 public static final int kBufferSize = 8192;

 public static void main(String[] args) throws Exception {
  if (args.length < 4) {
   System.out.println("Usage: java PwdDES -e|-d passwd inputfile outputfile");
   return;
  }

  //Get or create key.

  Key key;

  KeyGenerator generator = KeyGenerator.getInstance("DES");
  generator.init(new SecureRandom(args[1].getBytes()));
  key = generator.generateKey();

  //Get a cipher object
  Cipher cipher = Cipher.getInstance("DES/ECB/PKCS#5");

  //Encrypt or decrypt
  if (args[0].indexOf("e") != -1)
   cipher.init(Cipher.ENCRYPT_MODE, key);
  else
   cipher.init(Cipher.DECRYPT_MODE, key);

  FileInputStream in = new FileInputStream(args[2]);
  FileOutputStream fileOut = new FileOutputStream(args[3]);
  CipherOutputStream out = new CipherOutputStream(fileOut, cipher);
  byte[] buffer = new byte[kBufferSize];
  int length;
  while ((length = in.read(buffer)) != -1)
   out.write(buffer, 0, length);
  in.close();
  out.close();
 }

}


8. 產生簽章與認證 (以DSA為例)
數位簽章常用在網路上做個人身份確認。
  產生簽章的步驟:

  • 呼叫getInstance取得一個Signature實體
  • 呼叫initSign初始化Signature
  • 呼叫sign產生簽章


  認證的步驟:

  • 呼叫getInstance取得一個Signature實體
  • 呼叫initVerify初始化Signature
  • 呼叫verify認證


Sample1: 產生Private/Public Key

import java.security.*;
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.io.*;

public class KeyPair1 {

 public static void main(String[] args)
 {
  try {
   KeyPairGenerator genKeyPair = KeyPairGenerator.getInstance("DSA");
   genKeyPair.initialize(1024, new SecureRandom());
   KeyPair kpKey = genKeyPair.genKeyPair();
   PrivateKey prKey = kpKey.getPrivate();
   PublicKey puKey = kpKey.getPublic();

   ObjectOutputStream osPrivate = new ObjectOutputStream(new FileOutputStream("D://Private.Key"));
   ObjectOutputStream osPublic = new ObjectOutputStream(new FileOutputStream("D://Public.Key"));
   osPrivate.writeObject(prKey);
   osPublic.writeObject(puKey);

   osPrivate.close();
   osPublic.close();
  }
  catch (Exception e) {
   System.out.println("Error");
  }
 }
}

Sample2: 產生簽章與認證

import java.io.*;
import java.security.*;
import java.security.Signature;
import java.security.cert.*;

public class GenSign {

 public static void main(String[] args) throws Exception {
  String options = args[0];
  String messagefile = args[1];
  String signaturefile = args[2];

  Signature signature = Signature.getInstance("DSA");
  if (options.indexOf("s") != -1) {
   ObjectInputStream is = new ObjectInputStream(new FileInputStream("D://Private.key"));
   PrivateKey priKey = (PrivateKey) is.readObject();
   signature.initSign(priKey);
   is.close();
  }
  else {
   ObjectInputStream is = new ObjectInputStream(new FileInputStream("D://Public.key"));
   PublicKey pubKey = (PublicKey) is.readObject();
   signature.initVerify(pubKey);
   is.close();
  }

  FileInputStream in = new FileInputStream(messagefile);
  byte[] buffer = new byte[8192];
  int length;
  while ((length = in.read(buffer))!= -1)
   signature.update(buffer, 0, length);
  in.close();

  if (options.indexOf("s") != -1) {
   FileOutputStream out = new FileOutputStream(signaturefile);
   byte[] raw = signature.sign();
   out.write(raw);
   out.close();
  }
  else {
   FileInputStream sigIn = new FileInputStream(signaturefile);
   byte[] raw = new byte[sigIn.available()];
   sigIn.read(raw);
   sigIn.close();
   if (signature.verify(raw))
    System.out.println("The signature is good.");
   else
    System.out.println("The signature is bad.");
  }
 }
}

CH569 USBSS库函数分析 CH569 USB3.0 解析 阅读详情

相关推荐

深入解析Carry4的内部结构与工作原理

本文深入解析了Xilinx/AMD FPGA中的核心硬件资源Carry4的内部结构和工作原理。作为实现超前进位的关键物理电路,Carry4通过其CI、DI、S、O、CO等端口,高效处理4位算术运算的进位逻辑。文章通过端口详解、结构分析和实战计算示例,揭示了其如何加速加法、减法等运算,并探讨了其在优化FPGA设计时序与资源利用中的关键作用。

n4o5p6q7r的博客 501

COCOs2dx中KEY_KP与KEY的区别

KP是 keypad(小键盘)的缩写,keypad|ˈki:pæd|a small set of buttons with numbers on used to operate a telephone, television, etc.; the buttons on the right of a computer keyboard (用于操作电话、电视等的)小键盘;(电话)按键;(计算机)辅助键...

COCO56的博客 2015

IDEA 导入 jbolt项目(实验室非公开项目)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录准备一、准备数据库二、IDEA导入jbolt项目 准备 在实验室群文件中下载jbolt.zip和mysql.sql两个文件 将其解压到自己的目录下 一、准备数据库 打开Navicat新建一个jbolt数据库(字符集为utf8) 导入mysql.sql文件 数据库导入完毕 二、IDEA导入jbolt项目 点击打开一个项目 选择jbolt文件夹 以Maven形式打开 打开pom.xml 在里面添加jetty-server依赖

weixin_44094842的博客 973

java 密碼學[轉]

Java密碼學(史帝芬, idealist@gcn.net.tw)1. 密碼學簡介 – 加密與解密加密是一個將欲加密的資料用一些數學運算轉成一團令人看不懂的東西的過程; 解密則是將加密文轉換回原始文字的過程。這個過程中,扮演原始文字與加密文字之間轉換的數學演算法稱為Cipher。圖1 Cipher的運作現代的Cipher多半會用Key來加密與解密資料。所謂Key是指一個機密值,我們可將

笑看人参----JAVA,WEB2.0,SOA... 1960

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 587

控制科学与工程(自动化)保研经验【4】——浙大篇

控制科学与工程(自动化)保研经验【4】——浙大篇

Control Everything 1万+

通俗易懂的Java安全密码学教程

互联网经过二十多年的发展,已经与我们的生产生活紧密相联,带动了技术创新、经济发展、社会进步,通过互联网让我们进入大数据信息时代。但与此同时,网络安全也迎来了更多的挑战,网络安全事故频频发生,成为了人们日趋关注的热点话题,如:2019年拼xx被曝出现重大BUG,黑产团伙通过过期优惠券漏洞盗取了数千万张平台优惠券,使其一夜损失高达200多亿...本课程讲解内容为密码安全,从古代密码学,近代密码学,现代密码学的基础部分讲起,内容由浅入深,适合有一定Java开发基础的相关人员,也适合具备一定软件开发能力的人员。通过本课程的学习,大家不仅能够理解密码学的基本概念,同时对于密码学中各种加密和解密方式的使用,以及各种实际应用场景,也会有更深入的认识。

数字信号处理(一):Xilinx Vivado DDS IP核设计实例(文末附源码)

前言 在数字信号处理时我们经常会用到数字变频,包数字下变频(DDC)和数字上变频(DUC),这其中会用到Xilinx公司的DDS IP核或者Altera公司的NCO IP核来产生本振频率,以现数字域信号频谱搬移。本文我们通过例化Xilinx公司的DDS IP核来产生混频器本振输入频率,并给出Modelsim仿真测试结果。 1、Xilinx DDS IP简介 Xilinx公司的DDS IP核使用AX...

FPGA_Designer 1万+

【人人都懂密码学】一篇最易懂的Java密码学入门教程

消息摘要(Message Digest)又称为数字摘要(Digital Digest)它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生使用数字摘要生成的值是不可以篡改的,为了保证文件或者值的安全2.2.1 特点无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。

Jinmindong 633

基于STM32设计的个人健康检测仪(华为云IOT)(191)

本系统采用华为云物联网平台实现数据云端存储与分析,并通过自研手机APP提供远程监控界面,让用户无论身处何地都能及时掌握自身的健康数据,为用户提供个性化的健康管理方案,同时也为医疗机构提供了便捷的数据获取途径,助力实现智能化、精细化的医疗服务。

1678

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 793

Java密码学(推荐)

Base64是网络上最常见的用于传输8Bit字节码的可读性编码算法之一,可读性编码算法不是为了保护数据的安全性,而是为了可读性。可读性编码不改变信息内容,只改变信息内容的表现形式。所谓Base64,即是说在编码过程中使用了64种字符:大写A到Z、小写a到z、数字0到9、“+”和“/”;Base58是Bitcoin(比特币)中使用的一种编码方式,主要用于产生Bitcoin的钱包地址相比Base64,Base58。

下半夜的风 1517

C#调用企业微信JS-Sdk实现扫描二维码

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验提示:生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是H5应用调用企业微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

清浅 937

中年JAVA转WEB3.0的成长自救之路-1

作为一名在JAVA行业摸爬滚打了10的中年人,尝试转行产品2年,但是这两年的产品业务专业性过强,无法适配到广泛的行业通用,相当于干这一行的产品,只能在这一行继续扎根深入,但是这一行又具有一定的垄断性质。加上最近工作不太顺心,不得不考虑到如果被开掉,或者哪天实在受不了了的情况下自己的出路。恰好小伙伴从事WEB3.0开发,薪资和工作模式都着实令人羡慕,了解到JAVA转3.0门槛相对而言较低,故而有了此文来鞭笞自己顺带记录下自己的学习过程与经历也希望有机会与大家多交流的机会。

SeanDJJ的博客 726

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2018-2019-2 实验五 网络编程与安全

实验要求 完成云班课中的检查点,也可以先完成实验报告,直接提交。注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明。实验报告中一个检查点要有多张截图。 发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300)实验五 Java网络编程 实验报告” 实验内容 任务一:两人一组结对编程: 0.参考http://www.cnblogs.com/rocedu/p/6...

weixin_30469895的博客 159

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

2018-2019-2 20175320实验五《网络编程与安全》实验报告

2018-2019-2 20175320实验五《网络编程与安全》实验报告 一、相关介绍 在本次实验中我主要使用了书本第13章Java网络编程以及Java密码学的内容,基于TCP的信息传输使用socket进行实现,加密、解密、生成共享密钥以及进行摘要验证使用了Java中的JCA以及JCE。 二、实验步骤及内容 (一)任务一 任务要求: 结对实现中缀表达式转后缀表达式的功能并对后缀表达式进行计算 ...

weixin_30814329的博客 396

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

2018-2019-2 20175318 实验五《网络编程与安全》实验报告

一、实验报告封面 课程:Java程序设计 班级:1753班 姓名:李浩然 学号:20175318 指导教师:娄嘉鹏 实验日期:2019年5月31日 实验时间:13:45 - 15:25 实验序号:实验五 实验名称:网络编程与安全 二、实验内容及步骤 任务一 实验要求 1.两人一组结对编程 2.结对实现中缀表达式转后缀表达式的功能 MyBC.java 3.结对实现从上面功能中获取的表达式...

weixin_30532837的博客 97

20175221曾祥杰 实验五《网络编程与安全》

实验五《网络编程与安全》 实验报告封面 课程:Java程序设计 班级:1752班 姓名:曾祥杰 学号:20175221 指导教师:娄嘉鹏 实验日期:2019年5月26日 实验时间:13:10 - 15:25 实验序号:21 实验名称:网络编程与安全 实验步骤 第一部分 要求: 两人一组结对编程: 0. 参考http://www.cnblogs...

weixin_30553777的博客 160

科普文:【哈希算法:CRC哈希系列、BKDR Hash、APHash、DJB Hash、JSHash、RSHash、SDBM Hash、PJWHash、ELFHash、MurmurHash、FNV等】

在编程中,字符串转hash是一个常见且重要的操作。 为了简化这一过程,我们可以创建一个工具类HashUtils,其中包含了多种常用的字符串转hash算法,如CRC、MD5、SHA系列(SHA-1、SHA-256等)、BKDR hash、APHash、DJB Hash、JSHash、RSHash、SDBM Hash、PJWHash和ELFHash。 这些字符串转哈希算法简介如下: BKDR Hash:以131为底的对数计算,适用于字符串哈希。 APHash:通过加法、位操作和乘法计算哈希值,适用于字符串

为无为,事无事,味无味。 2179

java 网络编程实验_20175314 实验五 Java网络编程

20175314 实验五 Java网络编程一、实验报告封面课程:Java程序设计 班级:1753班 姓名:薛勐 学号:20175314 指导教师:娄嘉鹏 实验日期:2018年5月31日 实验时间:15:35 - 17:15 实验序号:五 实验名称: 网络编程与安全 实验目的: 1、掌握Java Socket的相关内容; 2、学会建立客户端与服务器端之间的联系; 3、学习并应用密码学的相关内容二、实...

weixin_39833763的博客 406

【力扣Leetcode题解系列之0012——Integer to Roman 整数转罗马数字】

本文全面解析了将整数转换为罗马数字的算法问题。文章首先介绍了罗马数字的基本规则和特殊减法情况,然后详细讲解了贪心算法的解法思路及其优势。提供了五种编程语言的实现代码,并分析了算法的时间复杂度(O(1))和空间复杂度(O(1))。此外,文章提出了三个扩展题目方向:支持更大范围的转换、实现双向转换以及处理带条件的转换,增加了问题的挑战性。最后说明了该算法在历史研究、排版编号和密码学等领域的实际应用价值。全文内容系统全面,既适合算法初学者理解基础解法,也为进阶学习者提供了扩展思路。

youngerwang的博客 909

2018-2019-2 20175213实验五 《网络编程与安全》实验报告

一、实验报告封面 课程:Java程序设计 班级:1752班 姓名:吕正宏 学号:20175213 指导教师:娄嘉鹏 实验日期:2019年5月27日 实验时间:13:45 - 21:00 实验序号:实验五 实验名称:网络编程与安全 实验要求: 1、完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)...

weixin_30606669的博客 163

实验五 网络编程与安全-----实验报告

一、实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ; (2)结对实现中缀表达式转后缀表达式的功能 MyBC.java; (3)结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java; (4)上传测试代码运行结果截图和码云链接; 2.实验过程...

weixin_30312659的博客 239

实验五《网络编程与安全》

实验五《网络编程与安全》实验报告-20175131王泽龙 一、实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ; (2)结对实现中缀表达式转后缀表达式的功能 MyBC.java; (3)结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java;...

weixin_33975951的博客 161

Java的java.util.HexFormat中的策略分配

这种建造者模式允许开发者组合多种策略,例如创建带"0x"前缀和冒号分隔的格式器:HexFormat.of().withPrefix("0x").withDelimiter(":"),体现了策略组合的灵活性。HexFormat还特别处理字节符号扩展问题,其策略会自动将负值字节转换为无符号表示,避免传统Integer.toHexString()产生的冗余"FFFFFF"前缀问题。例如转换字节数组时,默认输出类似"1A2B3C"的紧凑格式,这种设计减少了初学者的学习成本,同时满足通用需求。

oiaqfa_909的博客 39

密码学入门

密码学入门研究生的第一年就要过完了。有幸在号称中国密码学界的“黄埔军校”学习密码,得以见识老一辈和新一辈密码学大师的风采。虽然学的不好,但感觉也有所收获,主要是自己的基础知识太缺乏了,觉得有必要写一篇建议性的文章,给那些希望从事密码学研究的师弟师妹们一个参考。

wjheha的博客 6万+
上一篇: [转]JDK 1.4中与安全有关的部分
下一篇: [转]使用 WSDL 部署 Web 服务,第 2 部分: 简单对象访问协议(SOAP)
java_lk
博客等级 码龄20年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值