pki java相关代码参考
keytool -genkey -dname "CN=demo, OU=softDept, O=company,
L=puddong,S=shanghai, C=cn" -alias demo -keyalg RSA -keysize 1024
-keystore demoKeystore -validity 3650 -storepass storePwd -keypass
demoPwd
生成保存公钥和私钥的密钥仓库,保存在demoKeystore文件中。这里storepass 和 keypass
不要有java 正则表达式中的特殊字符,否则程序里要转义麻烦。
keytool -export -alias demo -keystore demoKeystore -rfc -file
demo.cer //从密钥仓库中导出保存公钥的证书
输入keypass 即demoPwd
try{
//
密钥仓库
KeyStore ks = KeyStore.getInstance("JKS");
//读取密钥仓库
FileInputStream
ksfis = new FileInputStream("demoKeystore");
BufferedInputStream
ksbufin = new BufferedInputStream(ksfis);
char[] storePwd =
"storePwd".toCharArray();
ks.load(ksbufin, storePwd);
ksbufin.close();
char[]
keyPwd = "demoPwd".toCharArray();
//从密钥仓库得到私钥
PrivateKey priK =
(PrivateKey) ks.getKey("demo", keyPwd);
//生成cipher
Cipher
cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding",new
org.bouncycastle.jce.provider.BouncyCastleProvider());
//用私钥初始化cipher
cipher.init(Cipher.ENCRYPT_MODE,
priK);
byte[] plain = "This is plain text".getBytes("UTF-8");
//
因为用的1024位rsa算法,一次只能加密1024/8-11字节数据,分开加密
byte[] code = new
byte[(((plain.length-1)/117+1))*128];
int ixplain = 0;
int ixcode = 0;
while((plain.len
相关文档:
一、通过HttpClient(apache commons-httpclient)方式,获许网页内容,并解析出需要的东西。
这种方法相对比较简单,因为commons-httpclient已经做了很好的封装,简单的代码如下:
// 构造HttpClient的实例
HttpClient httpClient = new HttpClient();
HttpClientParams clientPar ......
你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如 果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用java编程吗?如果这些问题中任何一个你回答是,那么你应该使用 Quartz调度器。
......
package script;
import java.io.File;
import java.io.IOException;
public class Realname {
public static void main(String[] args) throws IOException
{
File oldFile = new File("d:/PMS");
if(!oldFile.exists())
{
oldFile. ......
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.logging.Logger; ......
Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。
当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量 ......