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));
try
{
str = bufferReader.readLine();
}
catch (IOException exc)
{
System.out.println("Error read from stdin!");
return ;
}
int len = str.length();
int[] number=new int[len];
for(int i = 0; i < len; i++){
number[i]=Integer.parseInt(str.substring(i,i+1));
}
// 1234567890123
int flag = 0;
  ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÎÒ¸öÈËÈÏΪѧϰ±à³Ì×î¿ìµÄ·½·¨¾ÍÊÇʵ¼Ê½áºÏÀíÂÛ(¼´ÏÈʵ¼ÊÔÚÀíÂÛ)´úÂë×Ô¼ºÅÜÅÜ¿´£¬µ÷Ò»µ÷£¬·¢ÏÖÎÊÌâ»òÆæ¹ÖµÄµØ·½ÔÚÈ¥ÕÒÏà¹Ø×ÊÁϲé²é¡£±È´ÓÍ·µ½Î²¿´Ò»¶ÑÀíÂÛÈ»ºóÔÙÀíÂÛ½áºÏʵ¼Ê(ÏÈÀíÂÛÔÙʵ¼Ê)ÒªºÃ¡£µ±È»ÁË£¬´¿¸öÈ˹۵㣬ºÙºÙ¡£
ÍøÉÏÏà¹ØµÄ˵Ã÷ºÍ´úÂëÓкܶ࣬ÎÒÒ²Ö»ÊǶ«³Î÷³£¬È»ºóÔÙ¼Óµã×¢ÊÍ£¨Ã»È˽̣¬¶¼ÊÇ×Ô¼ºÏ¹Àí½âµÄ£¬Ò²²»ÖªµÀÀí½âµÄ¶Ô²»¶Ô£¬»¹ÐèÒªÅóÓÑÃǶà¶àÖ¸Õý£©£¬´úÂëÈçÏ£¨ÕâÊÇ1ÏûÏ¢ÕªÒª²¿·Ö£©£¬Ö±½Ó¾ÍÄÜÅÜ£¬Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊÂ
package security;
import java.security.MessageDigest;
/**
* ÏûÏ¢ÕªÒªÊÇÒ»ÖÖÓëÏûÏ¢ÈÏÖ¤Âë½áºÏʹÓÃÒÔÈ·±£ÏûÏ¢ÍêÕûÐԵļ¼Êõ
* Ŀǰ¹ã·ºÊ¹ÓõÄËã·¨ÓÐMD4¡¢MD5¡¢SHA-1
* ÔÚjavaÖнøÐÐÏûÏ¢ÕªÒªºÜ¼òµ¥£¬ java.security.MessageDigestÌṩÁËÒ»¸ö¼òÒ׵IJÙ×÷·½·¨£¬ÈçÏÂ
* ×¢Ò⣺ÏûÏ¢ÕªÒªÊǵ¥ÏòµÄ
*/
public class MessageDigestExample {
public static void main(String[] args) throws Exception {
String beforeDegist = "asdf"; ......
½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5) Êý×ÖÖ¤Êé
ÏÂÃæµÄ´úÂëÊǵڶþ²¿·Ö£ºË½Ô¿¼ÓÃÜ
Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊÂ
package security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import java.security.Key;
/**
* ´ËÀý×ÓÊǶÔÒ»¸ö×Ö·û´®ÐÅÏ¢£¬ÓÃÒ»¸ö˽Կ(key)¼ÓÃÜ£¬È»ºóÔÚÓøÃ˽Կ½âÃÜ£¬ÑéÖ¤ÊÇ·ñÒ»ÖÂ
* ˽Կ¼ÓÃÜ£¬ÊǶԳƼÓÃÜ
* ʹÓöԳÆËã·¨¡£±ÈÈ磺AÓÃÒ»¸öÃÜÔ¿¶ÔÒ»¸öÎļþ¼ÓÃÜ£¬¶øB¶ÁÈ¡Õâ¸öÎļþµÄ»°£¬ÔòÐèÒªºÍAÒ»ÑùµÄÃÜÔ¿£¬Ë«·½¹²ÏíÒ»
* ¸ö˽Կ£¨¶øÔÚweb»·¾³Ï£¬Ë½Ô¿ÔÚ´«µÝʱÈÝÒ×±»ÕìÌý£©
*
* ¸½£ºÖ÷Òª¶Ô³ÆËã·¨ÓУºDES£¨Êµ¼ÊÃÜÔ¿Ö»Óõ½56 룩
* AES£¨Ö§³ÖÈýÖÖÃÜÔ¿³¤¶È£º128¡¢192¡¢256룩£¬Í¨³£Ê×ÏÈ128룬ÆäËûµÄ»¹ÓÐDESedeµÈ
*/
public class PrivateKey {
public static void main(String[] args) throws Exception {
String before = "asdf";
byte[] plainText = before.getBytes("UTF8");
//1²½************************************************************** ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÏÂÃæµÄ´úÂëÊǵÚÈý²¿·Ö£º¹«Ô¿¼ÓÃÜ
Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊÂ
package security;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import javax.crypto.Cipher;
/**
* ´ËÀý×ÓÊÇÒ»¸ö¹«Ô¿¼ÓÃÜÀý×Ó,CipherÀàʹÓÃKeyPairGenerator(¹ËÃû˼Ò壺һ¶ÔÔ¿³×Éú³ÉÆ÷)Éú³ÉµÄ¹«Ô¿ºÍ˽Կ
*
* ¹«Ô¿¼ÓÃÜÒ²½Ð²»¶Ô³Æ¼ÓÃÜ£¬²»¶Ô³ÆË㷨ʹÓÃÒ»¶ÔÃÜÔ¿¶Ô£¬Ò»¸ö¹«Ô¿£¬Ò»¸ö˽Կ£¬Ê¹Óù«Ô¿¼ÓÃܵÄÊý¾Ý£¬Ö»ÓÐ˽ԿÄÜ
* ½â¿ª£¨¿ÉÓÃÓÚ¼ÓÃÜ£©£»Í¬Ê±£¬Ê¹ÓÃ˽Կ¼ÓÃܵÄÊý¾Ý£¬Ö»Óй«Ô¿Äܽ⿪£¨Ç©Ãû£©¡£µ«ÊÇËٶȺÜÂý£¨±È˽Կ¼ÓÃÜÂý100µ½
* 1000±¶£©£¬¹«Ô¿µÄÖ÷ÒªËã·¨ÓÐRSA£¬»¹°üÀ¨Blowfish,Diffie-Helman µÈ
*/
public class PublicKey {
public static void main(String[] args) throws Exception {
String before = "asdf";
byte[] plainText = before.getBytes("UTF8");
//²úÉúÒ»¸öRSAÃÜÔ¿Éú³ÉÆ÷KeyPairGenerator(¹ËÃû˼Ò壺һ¶ÔÔ¿³×Éú³ÉÆ÷) ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÏÂÃæµÄ´úÂëÊǵÚËIJ¿·Ö£ºÊý×ÖÇ©Ãû
Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊ 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µÄ˽ԿÄÜ ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÏÂÃæµÄ´úÂëÊǵÚÎ岿·Ö£ºÊý×ÖÖ¤Êé
±ÈÆðǰËIJ¿·Ö£¬Õⲿ·Ö¾ÍÉÔ΢Âé·³µãÁË£¬ÎÒÏëÎÒÓбØÒª¸ø¸Õ¸Õ½Ó´¥Êý×ÖÖ¤ÊéµÄÅóÓÑÃÇ£¬°ÑÔÚ±¾µØÅÜͨÏÂÃæ´úÂëµÄǰÌá˵һÏ£º
1´ËÀýÊǶԓÊý×ÖÖ¤Êé”ÎļþµÄ²Ù×÷£¬ËùÒÔ£¬ÄãÏÈÒªÔÚ±¾µØ½¨Á¢Ò»¸öÖ¤Êé¿â
2½¨Á¢Ö¤Êé¿â(ÃÜÔ¿¿â)
cmdÖÐÊäÈ룺C:/>keytool -genkey -alias TestCertification -keyalg RSA -keysize 1024 -keystore BocsoftKeyLib -validity 365
Òâ˼ÊÇ£ºÔÚcÅÌĿ¼Ï´´½¨Ò»¸öÖ¤Ê飬ָ¶¨Ö¤Êé¿âΪBocsoftKeyLib£¬´´½¨±ðÃûΪTestCertificationµÄÒ»ÌõÖ¤Ê飬ËüÖ¸¶¨Óà RSA Ëã·¨Éú³É£¬ÇÒÖ¸¶¨ÃÜÔ¿³¤¶ÈΪ1024£¬Ö¤ÊéÓÐЧÆÚΪ1Äê
½¨Á¢¿âµÄ¹ý³ÌÖлáѯÎÊÎÊÌ⣬Ïê¼ûµÚ5Ìõ
3½«Ö¤Êéµ¼³öµ½Ö¤ÊéÎļþTC.cer
ÔÚcmdÖÐÊäÈ룺C:/>keytool -export -alias TestCertification -file TC.cer -keystore BocsoftKeyLib
Òâ˼ÊÇ£º½«°ÑÖ¤Êé¿âBocsoftKeyLibÖеıðÃûΪTestCertificationµÄÖ¤Êéµ¼³öµ½TC.cerÖ¤ÊéÎļþÖУ¬Ëü°üº¬Ö¤ÊéÖ÷ÌåµÄÐÅÏ¢¼°Ö¤ÊéµÄ¹«Ô¿£¬²»°üÀ¨Ë½Ô¿£¬¿ÉÒÔ¹«¿ª
4ÒÔÉÏ3²½¾Í» ......