java加密和数字签名4 数字签名
最近初步接触了下Java加密和数字签名的相关内容,我学习的过程大概分五步:
1)消息摘要
2)私钥加密
3)公钥加密
4)数字签名
5)数字证书
下面的代码是第四部分:数字签名
希望能为刚刚接触这个的朋友们省点事 package security;
import java.security.Signature;
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.SignatureException;
/**
* 此例子是数字签名的例子,使用RSA私钥对消息摘要(这里指的是原始数据)进行签名,然后使用公钥验证签名
*
* A通过使用B的公钥加密数据后发给B,B利用B的私钥解密就得到了需要的数据(进过B公钥加密的数据只有B的私钥能够
* 解开,C没有B的私钥,所以C解不开,但C可以使用B的公钥加密一份数据发给B,这样一来,问题来了,B收到的数据到
* 底是A发过来的还是C发过来的呢)
* 由于私钥是唯一的,那么A就可以利用A自己的私钥进行加密,然后B再利用A的公钥来解密,就可以确定:一定是A的消
* 息,数字签名的原理就基于此
*
* 总结:A想将目标数据传给B,此时A需要准备1和2两部分
* 1:A使用B的公钥将原始信息加密,以起到保密作用(只有B的私钥能解开,其他人使用其他钥匙都解不开,当然就保密咯)
* 2:A使用A的私钥将原始信息的摘要进行签名,以起到接收方B确定是A发过来的作用(A用A的私钥对目标数据的摘要进行签
* 名,然后传给B,同时,C用C的私钥对任意信息进行签名也传给B,B想接受的是A的数据(比如说一个转帐请求),于是B
* 就通过A的公钥对接受到的两个信息进行解密,解开的就是A(A的公钥能且只能解开A的私钥加密的数据))
*/
public class DigitalSignature {
public static void main(String[] args) throws Exception {
String before = "asdf";
byte[] plainText = before.getBytes("UTF8");
//形成RSA公钥对
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
//使用私钥签名**********************************************************
Signature sig = Signature.getInstance("SHA1WithRSA");
sig.initSign(key.getPrivate());//sig对象得到私钥
//签名对象得到原始数据
sig.update(plainText
相关文档:
[Image]使用 Java 2D 取得图像上指定位置像素的 rgb 颜色分量
CMYK配色表
RGB配色表
实效
英文名称
RGB
16色
PaleTurquoise1
187 255 255
#BBFFFF
PaleTurquoise2
174 238 238
#AEEEEE
PaleTurquoise3
150 205 205
#96CDCD
PaleTurquoise4
102 139 139
#668B8B
等等. ......
把以前做过的项目总结一下!参加工作以来一共用三种不同语言实现了获得文件夹及其子文件信息。为了方便以后使用总结一下
air实现:
private function getfile(filelist:File):Array{
var list:Array = filelist.getDirectoryListing();
var count:uint=list.length;
......
import java.io.*;
public class CaiPiao {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str;
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in ......
近初步接触了下Java加密和数字签名的相关内容,我学习的过程大概分五步:
1)消息摘要
2)私钥加密
3)公钥加密
4)数字签名
5) 数字证书
下面的代码是第二部分:私钥加密
希望能为刚刚接触这个的朋友们省点事
package security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import ......