Tag: java

Android,PHP和node.js之间的encryption和解密

我试图在Android上对Java中的string进行encryption,然后使用PHP和/或node.js将其解密 我已经尝试http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php ,但只有前半部分返回的hexstring的作品。 我想要一个128位的密钥(如果可能,更高的AES)的encryptiontypes。 encryption密钥也需要configuration,所以我的问题可能与我如何填充string有关。 Java的 String.format("%1$-" + n + "s", s) PHP $key = str_pad($key,16); 完整的Java代码: package com.giggsey.test; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import android.util.Log; public class SimpleCrypto { private String iv = "fedcba9876543210";//Dummy iv (CHANGE IT!) private IvParameterSpec ivspec; private SecretKeySpec keyspec; private Cipher cipher; private String SecretKey […]

在HTTP模式下,node.js是否比Java有更大的性能优势?

我刚刚开始在node.js中编写一段时间。 这是我的一个问题: 在HTTP应用程序中,给定请求 – 响应模型, 单个应用程序线程被阻塞,直到所有的后端任务完成并且响应返回给客户端,所以性能改进似乎仅限于微调后端事物并行IO请求。 ( 当然,这个改进对涉及到很多繁重和独立的 IO操作很重要,但是通常这个条件也意味着通过重新devise数据结构,可以消除大量的IO请求,并且可能最终获得更好的性能而不仅仅是发行并行操作。 ) 如果那是真的,它怎么会比那些基于Java(或PHP,Python等)的框架产生更好的性能呢? 我也参考了一篇文章了解node.js事件循环 ,这也解释了这种情况: 它确实是一个单线程运行:你不能做任何并行的代码执行; 例如做一个“睡眠”会阻塞服务器一秒钟: while(new Date().getTime() < now + 1000) { // do nothing } 然而,除了你的代码之外,所有东西都是平行的。 我亲自证实,通过将“睡眠”代码放入一个IOcallback闭包中,尝试提交导致此callback的请求,然后再提交另一个。 两个请求都会在处理时触发控制台日志。 我的观察是,后者被阻止,直到前者回复。 那么,这是否意味着只有在双方都可以随时发送事件和互相推送消息的套接字模式下,才能充分利用其asynchronous处理能力呢? 我对此有点困惑。 任何意见或build议是受欢迎的。 谢谢! 更新 我问这个问题是因为报告了一些性能评估案例,例如Node.js接pipe了企业 – 无论您是否喜欢 ,以及LinkedIn从Rails移动到Node:27服务器的速度提高了20倍 。 一些激进的观点声称,J2EE将被完全取代: J2EE已经死了:由JSON服务支持的长寿命的Javascript 。

Node.js Hmac SHA256 base64的string

我正在做一个应用程序在Java和一个服务器与节点和身份validation方法,我想比较两个string。 在Java中,我正在这样做: try { String secret = "secret"; String message = "Message"; Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256"); sha256_HMAC.init(secret_key); String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(message.getBytes())); System.out.println(hash); } catch (Exception e){ System.out.println("Error"); } 但是我对node.js仍然很陌​​生,我试图弄清楚如何在那里做同样的事情。 这是我得到的: var crypto = require('crypto'); var sha256 = crypto.createHash('HMAC-SHA256').update('Message').digest("base64"); 我怎样才能让他们做同样的事情? 我仍然在node.js中缺lesssalt。 build议? 编辑:下面的答案帮助我find解决scheme。 如果其他Android用户有这个问题,那么这个代码为我工作: try { String secret = "secret"; […]

为我的API实现API密钥

我创build了一个api,我想控制谁使用它,多久等等。我想要一个API密钥策略,以便用户必须提供密钥才能使用API​​。 但是我不知道如何实现它。 用户使用用户名和密码注册。 我想到的是当用户login并将其存储在数据库的表中时分配一个UUID。 然后每个请求都包含这个uuid,并在服务器的每个请求中进行检查。 然而这看起来不正确。 有人可以解释的步骤,以创build一个API,如Dropbox,Twitter,Facebook等呢? 我想尝试自己实现这个。

来自公务员的pipe道stream请求职位

我将multipart/form-data发布到快速端点/data/upload ,如下所示: form(enctype="multipart/form-data", action="/data/upload", method="post") input(type="file", name="data") 我正在使用busboy读取文件stream,这工作正常。 从那里,我想使用request npm模块将stream再次作为multipart/form-data到第二个Java后端。 JS客户端/ Java服务器代码如下: req.busboy.on('file', function (fieldName, fileStream, fileName, encoding, mimeType) { var reqBody = { url: server.baseURL + 'api/data', headers: { 'Connection': 'keep-alive', 'Content-Type': 'multipart/form-data' }, formData: { file: fileStream } }; request.post(reqBody, function (err, r, body) { // Do rendering stuff, handle callback }); }); […]

Google V8的工作方式与Java虚拟机类似吗?

我知道V8是一个JavaScript引擎,但它的工作方式与Java虚拟机类似吗? 如果它不以相同的方式工作,有什么区别? V8是否直接将JavaScript编译为机器语言?

客户端模板语言与Java编译器以及(DRY模板)

我希望能够定义模板一次,并使用它们从服务器端和客户端都呈现html。 (DRY原则和所有这一切) 我想象的API就是这样:render(JSON,template) – > html。 我正在使用一个Java框架(实际上玩框架,但我不认为这是特定于框架)。 我已经阅读了许多类似的问题,最新的,最有帮助的: 模板语言,用于客户端和服务器端的渲染 。 我非常同意作者这样的明显的竞争者:Mustache和Google Closure Templates不会削减它。 (因为看到这个post) 要求: 必须:客户端渲染 必须:模板文件的客户端caching NICE:模板文件的客户端“编译一次执行多次”快速的javascript代码 必须:服务器端渲染 NICE:原生的Java实现 我见过一堆post,提示使用Node.js进行服务器端模板化。 尽pipe这肯定会起作用(下划线模板,Handlebarsjs,EJS都可以正常工作)我很努力地看到如何沟通/组合/整合Node.js与Java,毕竟它仍然是需要输出JSON的Java框架 我已经看过文章提到JVM和node.js(通过http或使用JNDI)之间的一些概念validation。 然而,目前似乎还没有图书馆,更不用说经过战斗考验了。 所以,为了整理一下,你会build议在java中运行什么客户端模板引擎(或者可以从jvm中调用)? 如果这个'箍'碰巧是Node.js,你会build议使用什么样的通信/库?

Java NIO非阻塞模式vs node.jsasynchronous操作

我还没有经历node.js的代码细节。 但是,经过对Node.js中线程的研究,我发现它有单线程来接受来自多个客户端的连接。 当与客户端连接时,它会触发连接事件并监听另一个客户端,并以asynchronous方式完全工作,客户端请求的hibernate操作从线程池执行,结果通过callback被发送回主线程(接受连接的线程)。 像Java中的NIO也是ServerSocketChannel一样,SocketChannel可以设置为非阻塞模式,并且使用select器单线程可以监控多个通道。 因此,使用NIO ServerSocketChannel,SocketChannel也可以从单个线程中为多个客户端asynchronouspipe理连接 那么,NIO的非阻塞模式和单线程asynchronous的node.js是否遵循相同的单线程概念? 正如他们说,他们在单线程执行。

在Android上运行NodeJS的可行选项(2017年8月)

有一堆旧的线程处理在Android上运行NodeJS。 其中大部分不再可行(JXCore)和/或提供令人困惑,过时,不完整或错误的信息。 因此,我调查了目前似乎是(截至2017年8月)可行的方法,并find了三个可能的候选人。 要决定他们之间我想知道: 这些方法之间的主要区别 在每种方法上具体的亲和和骗局 可能的障碍,挑战和缺点 你知道其他可行的select吗? 可行的方法是 : 运行包含NodeJS ( J2V8 )的V8 javascript引擎, 直接使用NodeJS,embedded为本机库( node-on-android ) 将React Native与NodeJS应用程序即服务( react-native-node ) 除此之外,我发现了一些相关的有趣资源: NPM直接使用Termux直接安装NodeJS而不生根(不适用于最终用户) LiquidCore – 原生移动微应用程序devenv(没有调查,有趣的概念) dna2oslab – 为节点可执行文件提供了一个工作的NodeJS构build脚本 为Android构buildNodeJS – 使用有用的编译技巧和示例项目的博客

是否有可能使用WebSockets或类似的本地Android应用程序?

我有一个使用HTTP / REST(使用Express.js)的Node.js应用程序,以及与之通信的本地Android应用程序。 这工作正常。 我现在正在考虑编写一个更实时的版本,可以将消息推送到本地客户端。 不幸的是,它需要成为一个本地客户端,因为在移动浏览器中,对于未来可能性来说,数据完成了一些相当复杂的工作(否则,我会等待WebSockets支持出现在Android浏览器中)。 所以,我的问题是我的select是什么? 我了解Android Cloud到设备消息传递框架,但是这需要注册和Googlelogin,我更希望服务器是客户端不可知论者。 有一个可靠的WebSocket客户端,我可以使用(理想情况下)与运行Socket.io的Node.js服务器交谈? 或者其他的本地方法(使用NIO类)?