ÔÚjavaÖÐÀûÓÃrhinoÖ´ÐÐjavascript
ÒÔrhinoÖÐÖ´ÐÐQQÓÊÏäµÄsafeauth.jsΪÀý
js´úÂëµØÖ·£ºhttp://res.qqmail.com/zh_CN/htmledition20091127/js/safeauth.js
£¨1£©µ¼ÈëÏàÓ¦Àà
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import com.sun.phobos.script.javascript.RhinoScriptEngineFactory;
£¨2£©½âÎöJS
ScriptEngineManager engineManager = new ScriptEngineManager();
engineManager.registerEngineExtension("js", new RhinoScriptEngineFactory());
ScriptEngine engine = engineManager.getEngineByName("js");
InputStream ins = getClass().getResourceAsStream("/safeauth.js");
InputStreamReader insReader = new InputStreamReader(ins);
engine.eval(insReader);
»á±¨´í£¬ËµÕÒ²»µ½window£¬navigator¶ÔÏó
ÕâÊÇÒòΪrhinoÖ»ÌṩÁËÖ´Ðнű¾µÄÒýÇæ»·¾³£¬Ã»ÓÐÌṩÀàËÆä¯ÀÀÆ÷µÄhost»·¾³£¬ËùÒÔµ±È»ÕÒ²»µ½ÕâÁ½¸ö¶ÔÏó
½«ÏàÓ¦µÄ´øÓÐwindow,navigatorµÄÐÐ×¢Ê͵ô£¬²¢¼ÓÈëÒÔÏ´úÂ룬¹¹³ÉеÄsafeauth.jsÎļþ£º
//-- encrypt password --//
function encryptPassword(pp, PublicKey, PublicTs) {
print("pp=" + pp + "\n");
print("PublicKey=" + PublicKey + "\n");
print("PublicTs=" + PublicTs + "\n");
var RSA = new RSAKey();
RSA.setPublic(PublicKey, "10001");
var Res = RSA.encrypt(pp + '\n' + PublicTs + '\n');
if (Res){
return hex2b64(Res);
} else {
return "EncodingPasswordError";
}
}
£¨3£©Ö´ÐÐJS£º
engine.eval("var t=encryptPassword('" + pp + "','" + publicKey + "','" + publicTs + "');");
String p = engine.get("t").toString();
´«Èëpp(ÃÜÂëÓòÖµ),publicKeyºÍpublicTs£¨ÕâÁ½¸öÖµ´Óhttp://mail.qq.com/cgi-bin/loginpageÒ³ÃæÄÚÈݵõ½£©£¬¼´¿ÉÒÔ¼ÆËã±àÂëºóµÄÃÜÂë¡£
Ïà¹ØÎĵµ£º
×î½üµÄDevoxx´ó»áÉÏ£¬Java 7½«°üº¬±Õ°üµÄÏûÏ¢ÁîºÜ¶àÈ˸е½Õñ·Ü——Õ⽫×öΪһ¸ö¶ÀÁ¢µÄJSR±»ÊµÏÖ¡£ÔÚÖÚ¶àJava 7еÄÓïÑÔÌØÐÔÖУ¬ÓÐһЩÏÖÔÚÒѾÍê³ÉÁË¡£Devoxx´ó»áµÄһλ²Î»áÕßÔÚ²©¿ÍÖб¨¸æÁËÏÂÃæÕâЩJava 7ÒѾÍê³ÉµÄ7´óй¦ÄÜ£º
1£©¶Ô¼¯ºÏÀàµÄÓïÑÔÖ§³Ö£»
2£©×Ô¶¯×ÊÔ´¹ÜÀí£»
3£©¸Ä½øµÄͨÓÃʵÀý´´½¨ÀàÐÍÍÆ¶Ï£»
......
×î½üÏîÄ¿ÖÐÓöµ½ÁËÉÏÒÆÏÂÒÆ²Ù×÷µÄÒ»¸ö²Ù×÷£¬ÒÔǰҲ¿´µ½¹ý£¬µ«Ò»Ö±Ã»ÓÐÈ¥Ñо¿¹ý£¬Õâ´ÎÏîÄ¿ÖÐÓöµ½ÁË£¬Ò²¾ÍÈ¥Ñо¿ÁËÒ»°Ñ£¬ÆäʵʵÏÖÔÀíҲͦ¼òµ¥µÄ£¬Ëµ°×Á˾ÍÊÇ
Òª¼Ç¼Êý¾Ý¿âÀïµÄÒª½øÐÐÅÅÐò±íµÄ×ܼǼÊýÁ¿£¬È»ºó¸ù¾ÝÑ»·µÄ´ÎÊý£¬¶àд¼¸¸öÒþ²Ø±äÁ¿£¬½øÐÐÉÏÒÆÏÂÒÆ²Ù×÷µÄʱºò½øÐÐÅжϾͿÉÒÔÁË¡£
&n ......
ʹÓÃJAVA¿ª·¢ÏµÍ³ÍÐÅ̳ÌÐò
@for&ever 2009-11-27
²Î¿¼ÎÄÕ¡¶New System Tray Functionality in Java SE 6¡·£¬ÍøÖ· http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/ ¡£
JDK±ØÐëÒªÔÚ 1.6 °æ±¾¡£
×î½üÏîÄ¿ÖÐҪʵÏÖ¶¨Ê±ÈÎÎñ³£×¤ÏµÍ³£¬Äܹ»Í¬Ê±ÓÐÒ»¸ö±È½ÏÓѺõIJÙ×÷·½Ê½Ìṩ¸ø ......
1.ÒòΪÁ½ÕßµÄÓÃ;²»Í¬£¬ËùÒÔAnnotationÓëXMLÓ¦¸Ã²¢´æ
¡¡Anootation vs XML µ½ÁËÏÖÔÚ£¬ÔÚSpringºÍEJB3¸÷Õ¼Ò»±ßµÄ³ÖÐøÑÝʾÏ£¬¸÷×ÔµÄÓÃ;ÒÑÇåÎú¡£
ËäÈ»Á½ÕßÖ®¼äÍêÈ«¿ÉÒÔÏà»¥Ìæ´ú£¬Ã»Óоø¶Ô²»ÄÜ×öµÄÊÂÇ飬µ«È´´æÔںò»ºÃµÄÎÊÌ⣬Á½ÕßµÄÓÃ;²»Í¬£¬Ó¦¸Ã²¢Óãº
"size=10£¬ ......
SCJP5ѧϰ±Ê¼Ç
Ò»¡¢²Ù×÷ϵͳÖÐÏ̺߳ͽø³ÌµÄ¸ÅÄî
ÏÖÔڵIJÙ×÷ϵͳÊǶàÈÎÎñ²Ù×÷ϵͳ¡£¶àÏß³ÌÊÇʵÏÖ¶àÈÎÎñµÄÒ»ÖÖ·½Ê½¡£
½ø³ÌÊÇÖ¸Ò»¸öÄÚ´æÖÐÔËÐеÄÓ¦ÓóÌÐò£¬Ã¿¸ö½ø³Ì¶¼ÓÐ×Ô¼º¶ÀÁ¢µÄÒ»¿éÄÚ´æ¿Õ¼ä£¬Ò»¸ö½ø³ÌÖпÉÒÔÆô¶¯¶à¸öÏ̡߳£±ÈÈçÔÚWindowsϵͳÖУ¬Ò»¸öÔËÐеÄexe¾ÍÊÇÒ»¸ö½ø³Ì¡£
Ïß³ÌÊÇÖ¸½ø³ÌÖеÄÒ ......