Java的學習筆記之JDK

為什麼要將java配置到環境變量中呢?

先看個案例:

比如在命令行下cd 到 d盤。然後輸入notepad回車後我們會看到打開

分析在windows下進行命令好操作的執行順序:

這條命令執行順序,先到D盤查找有沒有這個notepad.exe文件。

如果沒有,就去path中查找。如果存在,就打開相應的程序。

我們將Java配置到環境這樣做的目的是在任意盤符下都可以進行java開發。

Java的學習筆記之JDK

JDK的實現方式

package com.crypt.my;

import java.security.KeyFactory;

import java.security.PrivateKey;

import java.security.PublicKey;

import java.security.KeyPair;

import java.security.KeyPairGenerator;

import java.security.Signature;

import java.security.interfaces.RSAPrivateKey;

import java.security.interfaces.RSAPublicKey;

import java.security.spec.PKCS8EncodedKeySpec;

import java.security.spec.X509EncodedKeySpec;

public class JavaMD5RSASign {

private static String src = "i look";

public static void main(String[] args) {

MD5RSASign();

}

public static void MD5RSASign(){

try {

// 生成一對密鑰

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); //獲取密鑰生成器實例

keyPairGenerator.initialize(512); // 初始化長度

KeyPair keyPair = keyPairGenerator.generateKeyPair();

RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();//生成公鑰

RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate(); // 生成私鑰

//用私鑰進行簽名

PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(rsaPrivateKey.getEncoded()); //私鑰轉換成pkcs8格式

KeyFactory keyFactory = KeyFactory.getInstance("RSA");

PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); // 用key工廠對象生成私鑰

Signature signature = Signature.getInstance("MD5withRSA"); // md5 RSA簽名對象

signature.initSign(privateKey); //初始化簽名

signature.update(src.getBytes());

byte[] result = signature.sign(); //對消息進行簽名

System.out.println("簽名結果:"+result);

//用公鑰進行驗證

X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(rsaPublicKey.getEncoded());

PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);

signature.initVerify(publicKey);

signature.update(src.getBytes());

boolean verify = signature.verify(result);

System.out.println("驗證結果:"+verify);

} catch (Exception e) {

e.printStackTrace();

}

}

}

尚學堂12大精英團隊+各類實戰項目,真正實現1+1>10的目標效果。幫助學員迅速成長,持久騰飛,成就學員“高富帥”人生;幫助企業技術和團隊成長,成就百年中華名企;助力中國持續成為世界強國而貢獻力量。尚學堂12大精英團隊,覆蓋IT行業十大領域,實戰團隊240人,服務學員累計超過10萬人,就業合作企業數量500+。


分享到:


相關文章: