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
Ïà¹ØÎĵµ£º
//JavaÎļþÏÂÔØµÄ¼¸ÖÖ·½Ê½
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// pathÊ ......
¡¡¡¡ÔõôÈóÌÐòÀûÓÃËÑË÷ÒýÇæÀ´ËѼ¯ÍøÖ·£¬ÕâÓÐʲôÓÃ?ºÜÓÐÓÃ!ÍøÉ϶¯éüÓÐÈ˽ÐÂôÍøÖ·Êý¾Ý¿â£¬Èç·¢²¼Èí¼þÍøÖ·¡¢ÓʼþµØÖ·¡¢ÂÛÌ³ÍøÖ·¡¢ÐÐÒµÍøÖ·£¬ÕâÐ©ÍøÖ·ÊÇÔõôÀ´µÄÄØ?²»¿ÉÄÜÊÇÈËÊÖ¹¤ÊÕ¼¯¶øÀ´µÄ£¬¶¼ÊÇÈóÌÐòÀûÓÃËÑË÷ÒýÇæÈ¡µ½µÄ£¬Èç¹ûÄúÐèҪijÀàÍøÖ·ÐÅÏ¢Êý¾Ý£¬¾Í¸ú³É¶¼ÀÊÎÖ½ÌÓýÀ´Ò»ÆðÑо¿Ò»Ï£¬·Ç³£¼òµ¥¡£
¡¡¡¡±¾ÎIJÉÓÃJavaÓïÑÔÐ ......
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; ......
1. byte Èç¹ûûÓи³Öµ£¬ÄÇôjava»á×Ô¶¯½«Ëü¸³ÖµÎª £¨byte£©0;
static String ReadLn (int maxLg) // utility function to read from stdin
{
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = "";
try
{
while (lg < maxLg)
......
Java°ÑÄÚ´æ»®·Ö³ÉÁ½ÖÖ£ºÒ»ÖÖÊÇÕ»Äڴ棬һÖÖÊǶÑÄÚ´æ¡£
ÔÚº¯ÊýÖж¨ÒåµÄһЩ»ù±¾ÀàÐ͵ıäÁ¿ºÍ¶ÔÏóµÄÒýÓñäÁ¿¶¼ÔÚº¯ÊýµÄÕ»ÄÚ´æÖзÖÅä¡£
µ±ÔÚÒ»¶Î´úÂë¿é¶¨ÒåÒ»¸ö±äÁ¿Ê±£¬Java¾ÍÔÚÕ»ÖÐΪÕâ¸ö±äÁ¿·ÖÅäÄÚ´æ¿Õ¼ä£¬µ±³¬¹ý±äÁ¿µÄ×÷ÓÃÓòºó£¬Java»á×Ô¶¯ÊͷŵôΪ¸Ã±äÁ¿ ......