Tag: java

无法使用Java解密AES-256 GCM

我有一个节点模块,可以使用AES-256 GCM进行encryption和解密。 现在我也试图用Java解密,无论节点模块encryption了什么,但是我总是收到AEADBadTagException。 我已经testing了自己的节点模块,并可以确认它是否按预期工作。 我知道Java假设authentication标签是消息的最后一部分,所以我确保标签是附加在节点模块中的最后一个东西。 现在我只是用“你好”这个词来testing。 这是来自节点的encryption消息: Q10blKuyyYozaRf0RVYW7bave8mT5wrJzSdURQQa3lEqEQtgYM3ss825YpCQ70A7hpq5ECPafAxdLMSIBZCxzGbv/Cj4i6W4JCJXuS107rUy0tAAQVQQA2ZhbrQ0gNV9QA== 盐现在还没有真正被使用,因为我试图保持简单的testing目的 节点模块: var crypto = require('crypto'); var encrypt = function(masterkey, plainText) { // random initialization vector var iv = crypto.randomBytes(12); // random salt var salt = crypto.randomBytes(64); var key = masterkey; // AES 256 GCM Mode var cipher = crypto.createCipheriv('aes-256-gcm', key, iv); // encrypt the given text […]

文件stream使用Java类似于node.js

我正在讨论一个nodejs教程,它提到Node.JS在将文件写入磁盘时不会将文件保留在内存中,并且会在接收到文件时将文件块刷新到磁盘。 Java是否能够以类似的方式处理文件,或者在冲洗到磁盘之前将整个文件保存在内存中? 在过去,当我尝试使用servlet上传文件时,我遇到了内存exception。

从Clojurescript中创build一个NodeJS可运行的单个JavaScript文件

使用Lumo和下面提到的文件,我可以运行$ node main.js和presto! “你好,世界!”。 这很好,但是使用Lumo有一些缺点,我想知道这是否可以用cljs.jar 。 我如何使用可以由NodeJs运行的ClojureScript编译器(cljs.jar)从clojurescript创build一个JavaScript文件。 core.cljs (ns hello-world.core (:require [cljs.nodejs :as nodejs])) (nodejs/enable-util-print!) (defn -main [& args] (println "Hello world!")) (set! *main-cli-fn* -main) node.cljs (require '[lumo.build.api :as b]) (b/build "src" {:main 'hello-world.core :output-to "main.js" :optimizations :advanced :target :nodejs}) 目标是拥有一个包含所有内容的单个文件,不需要导入/需要外部文件。 我为什么要这个? 有许多网站在创build和/或增强algorithm方面遇到开发人员的挑战。 问题是,这些网站大部分不是所有你使用clojure,也clojurescript。 但他们确实让你使用JavaScript。 这些网站通常允许你使用Java以及…所以如果有另一种方式可能得到一个“java”文件,而不是一个类文件,这也将工作的出口。 我怀疑这可能,但我想问问。

Etherpad的时间线function如何工作?

我想了解Etherpad的时间线function如何工作。 如果你不知道这里的etherpad软件是它的实现 – http://piratepad.net/ 做一些编辑,写一些东西,大胆地使用编辑器,然后在右上angular你会看到时间表。 点击并播放它。 我可以看到像这样的JSON响应 – 但任何人都可以把它分解成一些可理解的东西。 这是从它的Node.js端口的一段代码 – https://github.com/Pita/etherpad-lite/blob/master/src/node/handler/TimesliderMessageHandler.js#L359 我非常有兴趣了解JSON响应及其工作原理。 另外什么数据库是最适合这种应用程序(etherpad,谷歌文档等)。 Nosql(如mongodb)或sql(如mysql)。

Node.js:这个长轮询实现是否泄漏:

我正在评估Node.js,以便在Java Web App上replace当前的推送function。 我写了一个简单的长轮询服务器,就像客户端和Java后端之间的中介一样工作。 客户端发出请求订阅,然后Java服务器可以通过调用Node.js来通知订阅的客户端。 目前为止似乎工作正常,但我得到了以下消息指出内存泄漏: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace at EventEmitter.addListener (events.js:168:15) at EventEmitter.once (events.js:189:8) at route (C:\Users\Juan Pablo\pushserver.js:42:12) at Server.onRequest (C:\Users\Juan Pablo\pushserver.js:32:3) at Server.EventEmitter.emit (events.js:91:17) at HTTPParser.parser.onIncoming (http.js:1793:12) at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23 ) at Socket.socket.ondata (http.js:1690:22) at TCP.onread (net.js:402:27) 我有一行代码logging现有的侦听器,每当一个通知事件发射。 […]

什么是通过HTTP POST处理大量数据的有效方法?

我正在编写一个应用程序,将用于绘制和分析海量的日志数据。 基本上,我们的应用程序(网站,Tomcat,控制台等)将有自定义的log4j appender发送日志条目到我们的远程服务器。 现在我想通过普通的HTTP POST来接受这些日志条目。 在这一点上,Web服务将logging到数据库中。 我在Node.js和Akka之间的栅栏上。 主要是因为我有Java和JavaScript的经验。 但是我对Akka的演员模式是新的,我读过Node并不是真正的并行,除非你运行多个节点服务器? 我的逻辑是这样的: 1)应用程序POST日志条目到服务器 2)服务器采取HTTP请求,并创build一个Amazon SQS条目(或Azure服务总线…没有决定) 3)工作人员清理队列并将条目存储在数据库中。 我认为这将允许真正快速的input,但调用SQS操作将是一个长期的IO过程。 我的另一个想法是接受POST请求,将其存储在memcached或Redis中,然后让工作人员从caching中拉出,发送到SQS,然后清除队列中的数据库插入。 这将具有HTTP请求尽可能快地传递数据的优点,并让其他工作人员处理logging。 这听起来像Akka的工作,因为我可以不分配每个请求的演员,然后让它产生其他演员来处理它进/出caching? 在testing阶段,我一次可以轻松看到20-500个请求。 取决于我们在testing中打开多less个应用程序。 但是一旦完全运行,我们可以看到来自所有应用程序的每秒数千个请求。 所以我的问题是如何最好地处理我将得到的海量数据。 我关心线程locking,http阻塞等

如何用RabbitMQ和nodejs运行独立的java

我一直在努力把node.js放在我们的java web服务器前,以利用节点的asynchronous处理 – 做一些轻量级的处理和其他任务,最终socket.io。 应用程序的大部分实际工作都是用java完成的,到目前为止,我们一直使用jetty webserver来处理所有的请求。 我一直在考虑使用node-http-proxy来转发(可能修改的请求)。 经过进一步考虑,我意识到不是转发http请求,而是使用像RabbitMQ和node-amqp库这样的更强大的通信协议。 这也可以更好地支持从java通过节点和socket.io推回到浏览器。 我的问题是:现在,处理所有传入的请求与节点,是否有任何理由继续在docker运行Java? 如果没有,我应该直接从命令行上的main方法运行java代码吗? 最后,这种方法是否存在重大缺陷? 我们的应用程序是一个单一的页面应用程序,并超越第一个请求加载页面最初,所有进一步的调用只是restful json调用,应该很容易通过amqp转移。

jQuery不能访问java web服务

我正在尝试为我们的web服务编写一个简单的“概念validation”前端。 webservice是一个返回在tomcat中运行的简单xml的java webapp。 前端由一些简单的HTML页面和一些jQuery的function组成。 我在我的本地机器上开发页面,而Web服务在我们的一台服务器上运行。 基本上这是我做的: var url = "http://ourserver.com:51088/service/action/?param=123"; $.get(url,function(data,status) { alert("Data: " + data + "\nStatus: " + status); }); 当我把url放在Firefox地址栏中时,我得到了xml。 当我运行jquery代码的时候,Firebug显示了生成的xml,但是这个警告从来没有显示出来。 考虑到这可能是一个跨浏览器的脚本问题,我写了一个小的node.js代理服务器,通过任何本地主机:51088 /pathourserver.com:51088/path。 所以我改变了url var var url = "http://localhost:51088/service/action/?param=123"; 同样,在浏览器中testing这个URL会导致xml。 所以node.js代理服务器工作正常。 当我在Firebug中运行jQuery代码时,我现在一直得到Reload the page to get source for: http://localhost:51088/….. 我现在亏本了 更新:阅读更多后,我改变了jQuery代码: $.ajax( { type: "GET", contentType: "application/xml", url: url, datatype: "text xml", […]

通过从Android发布数据到node.js?

我使用nodejs作为服务器和java(android)作为客户端,我成功地发送数据通过post从android到节点。 但是我的问题是当android发送的数据(string)包含空格和换行(回车)它在节点上收到但是字符发生了变化, 例如,我从android发送这个string Hello I learn android string发送到节点和接收,但我得到这个节点 Hello%0AI+learn+android 我使用这个代码发送string到android中的节点。 public void btnOnClick(){ String text= URLEncoder.encode(editText.getText().toString(), "utf-8"); //I get from editText and convert to utf-8 sendToNode(text); } public void sendToNode(String text){ try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://myDomain.com:8888/"); UrlEncodedFormEntity form; try { Log.i("kirim ke node isitextAsli ",text); List<NameValuePair> nameValuePairs = […]

Cassandra驱动程序在php,java,python,node.js中的拓扑意识

我只是好奇。 Cassandra驱动程序是否意识到拓扑结构? 这意味着驱动程序知道哪个机架最靠近哪个机架,哪个节点最有可能保存数据,并且具有低延迟以减less请求的响应时间? 还是每个司机都知道这个? 你会推荐哪些图书馆? 我非常感谢你的帮助。