java里面运行js_在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页面内容得到),即可以计算编码后的密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五一黄金周之二:可以吃人的博物馆

去年我写过一篇文章《如果再让我去天津,只有两个理由》,对比了天津、北京、上海三个城市的建设,同时狠狠地敲打了一下天津宾馆的服务质量。“天津的宾馆是让人愤怒的源头,它的数量和设施几乎没有接待全国大型会议的能力。据说它的…

萨义德与巴伦博依姆关于音乐和文学的对话

巴伦博依姆与萨义德是美国文化界两个重量级人物,尤其是萨义德,他的东方主义理论在世界范围内产生了影响。巴伦博依姆则是位天才的钢琴家,据说,他是世界上出版唱片最多的音乐家,更有意思的是他还曾是美国传奇女大提琴家…

java容器输入_Java 容器一些知识

一、Collection1.static 方法:Collections.sort(List):实现List排序功能Collections.fill(List , Object o):向已经添加有内容的容器,改变这个容器内的这些元素全为这个值二、ListArrayList:随机检索快速,但…

温柔得叫人想死:日本电影《火宅之人》手记

《火宅之人》是日本导演深作欣二在八十年代监督的情感伦理片。女主角之一由后来出演《桃色》的松坂庆子主演。《桃色》中的她虽然魅力犹存,但已经失去了年轻时的青春、活力和性感。所以《火宅之人》应该是她最红时期的作品,也是她最性感和最暴露的一次演…

与鬼古女夜晚后海边的“恐怖”聚会

昨天,鬼古女夫妇来京签名售书,中午我们三人在内蒙古宾馆吃的蒙古手把肉,喝了一瓶北京二锅头。晚上,《长篇小说选刊》编辑刘玉浦请我们及773恐怖小说的策划人花青女士在后海酒吧喝酒。中间白衣者为鬼古女夫妇。鬼古女恐怖小说新作《…

北京有个可以躺的酒吧——床吧(BED)

今天在旧鼓楼一条小巷里,发现有一个床吧(BED),据说是一个马来西亚华侨开的。酒吧的门口挺幽暗、诡异。酒吧特色顾名思义——满眼是“床”。里面灯光暧昧,有东方殖民地半殖民地的色彩和气息,让人不自觉地颓废…

java io运用_Java IO相关使用

date: 2020-06-14 14:42:22updated: 2020-08-21 17:35:45Java IO相关使用1. 文件创建 File 对象的三种方式一个路径名:File(String pathname)一个父路径名和子路径名:File(File parent, String child) 或 File(String parent, String child)一个URI (统一…

正在读《密码王朝》,却忍不住先说两句

正在读江苏作家成刚的新作《密码王朝》。这是国内著名恐怖悬疑文学品牌773 悬念系列的最新一本小说。看书名,似有跟风《达芬奇密码》之嫌,但粗看了些文字,感觉还是很中国化。小说涉及了密码破译和使用的一些问题,因而看似枯燥&am…

被遗忘和庸俗化的弗洛伊德:纪念弗洛伊德诞辰150周年(全文)

今年5月6日是弗洛伊德诞辰150周年。不知为什么国内媒体对这样的纪念日出奇地冷淡,只有《中国新闻周刊》做了一个封面故事《弗洛伊德的幽灵》。回想上世纪八十年代,弗洛伊德的理论刚刚进入中国的时候,他的书夸张地说“要比今天周杰伦演唱会的票…

java实现三个数字的随机组合_JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】...

本文实例讲述了java编程实现随机生成指定长度的密码功能。分享给大家供大家参考,具体如下:import java.util.random;public class passwordcreate {/*** 获得密码* param len 密码长度* return*/public string createpassword(int len){int random this…

话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)

晚上看了话剧《白鹿原》,据说该剧是今年人艺剧目的重中之重。可惜现场不许拍摄,在网上搜了半天也没有找到剧照。也是,剧明天才正式公演呢。只找到原著作家陈忠实的照片。 这部戏的台词使用的完全是陕西方言,并时时配有粗犷苍劲的“…

《恐怖小说在中国》之一:何为恐怖小说年?

一、何为恐怖小说年? 有人说2005年是恐怖小说年。所谓恐怖小说年这个说法,我早在2000年策划出版国内第一部恐怖小说《脸》的时候就说过,当时某家媒体就曾以“恐怖袭击中国文坛”为题,对“恐怖文学热”进行过报道,而我印…

java开源im框架_开源im即时通讯

spark the best,open sourceDuckChat开源系统据说支持即时消息,它有哪些特性?您可以下载程序在本地运行。现有的开源IM框架即时通讯开源项目。应该开发web爬虫选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector或其他?根据我…

《恐怖小说在中国》之二:恐怖小说是否对人有害?

二、恐怖小说是否对人有害? 恐怖小说创作与出版的繁荣,也引发了某些人士的忧虑,理由是恐怖小说和鬼故事影响了孩子们的身心健康。他们还以一个自杀的女学生为佐证。2004年,北京郊区一个女学生因为看了“碟仙”的鬼故事后跳楼身亡&…

《恐怖小说在中国》之三:恐怖小说到底是什么?

三、恐怖小说到底是什么? 什么是恐怖小说?它的起源和形式怎样?我在答《南方都市报》记者问时曾说过:“恐怖是人在遭受死亡、疯狂等威胁时所产生的一种高度的焦虑的心理状态,凡是描写这种心理状态的小说都可以称为恐怖小…

java分隔符的引号,使用分隔符拆分带引号的字符串

I want to split a string with a delimiter white space. but it should handle quoted strings intelligently. E.g. for a string like"John Smith" Ted BarryIt should return three strings John Smith, Ted and Barry.解决方案After messing around with it, y…

《恐怖小说在中国》之四:恐怖小说的流行与陷阱?

四、恐怖小说的流行与陷阱? 美国文化批评家哈里伯杰说过:“人有两种原始需要:一种是社会安宁、有秩序、不恐怖、不混乱,有一个预期的熟悉的环境。另一种恰好相反:人类确实需要焦虑、不安宁、需要混乱、危险、需要紧张、…

项目中使用 java函数式编程_函数式编程在Java8中使用Lambda表达式进行开发

事情起因如果不喜欢看故事的同学,请前往下一章节。事情起因是我打算集成Redis缓存,配置了Redis以后,发现Cacheable注解始终不生效,折腾了大半天以后,我的心态已经崩了,决定不使用Cacheable注解了&#xff0…

在看世界杯的闲暇看看电视剧《长恨歌》

世界杯开始了,无论重要的和次要的比赛场次都看,整个一个累。还好,反正4年才一次,纵容一下自己也是可以得到原谅的。王安忆的《长恨歌》一直是我关注的作品。上世纪90年代在《钟山》杂志上看过小说;02年在上海大剧院看过…