小编KC *_*ong的帖子

在Java中,使用char[]而不是String来存储密码还有意义吗?

char[]早在Usenet时代就学会了如何使用comp.lang.java.*.

搜索 Stack Overflow,你还可以轻松找到像这样高票数的问题: Why is char[] Preferred over String for passwords? 这与我很久很久以前学到的一致。

我仍然编写 API 以用于char[]密码。但现在这只是空洞的理想吗?

例如,查看Atlassian Jira的 Java API: LoginManager.authenticate,它将您的密码作为字符串。

或者Thales的 Luna Java API: LunaSlotManager 中的 login() 方法。其中,HSM供应商使用StringHSM 插槽密码。

我想我还在某处读到 URLConnection (和许多其他类)的内部结构String在内部使用来处理数据。因此,如果您发送密码(尽管密码通过网络通过TLS加密),它将以字符串形式保存在服务器内存中。

访问服务器内存是否是一个很难实现的攻击因素,以至于可以像String现在一样存储密码?或者泰勒斯这样做是因为你的密码最终会String由于其他人编写的类而最终被泄露?

java password-protection

72
推荐指数
5
解决办法
6206
查看次数

将Touch事件注入Android上的另一个应用程序

我有一个不带内置控制器支持,基于触摸的控件的游戏。我想将它与游戏板一起使用,并获得一些Android编程经验的动手工具。

我想弄清楚我是否可以让我的应用监听控制器事件,并将其转发给我的游戏。

我学习了如何处理控制器事件。然后我发现由于安全原因我无法转发它们-现在出于充分的理由允许以编程方式发送触摸事件。

根据此博客(其SSL证书已过期),有三种注入触摸事件的方法:

  1. 使用内部API(容易更改,需要root才能发送到另一个应用程序)
  2. 使用公共API规范(需要root才能发送到另一个应用)
  3. 直接写入/ dev / input / eventX(需要root才能更改权限)

我发现的其他方法包括构建自己的平台,因此您可以将应用程序设置为系统应用程序,并使用平台证书对其进行签名,以为其提供所需的权限。

或将另一个应用程序包装在您自己的应用程序中,但是使用Instrumentation发送触摸事件仍然需要root用户。

我还阅读了有关Accessibility API的信息,但看起来它被认为是对该API的滥用,并且将来可能无法实现。

我宁愿不让我的设备扎根,因为许多游戏如果检测到根,就会出现问题。

我本来打算放弃的,但后来发现了类似以下的应用程序:

  1. Touch4Gamepad-这个使用称为Arduino Board的硬件。Touch4Gamepad演示
  2. 章鱼 -这似乎是我想要尝试的方法,但它有很多两极分化的意见。它也不适用于Google Play服务。章鱼演示
  3. DRO-CON-通过连接的PC进行操作似乎采取了一种完全不同的方法。
  4. TeamViewer-它似乎可以远程控制Android,包括发送触摸事件。根据此线程,TeamViewer与电话制造商达成协议以获取所需的权限。支持的遥控器制造商

尽管Android具有安全性,但无论如何,选项2似乎都能做到。怎么样了?

编辑:我下载了章鱼的APK,并看看里面。它包含一个名为libinject.so ...的文件,因此它在发挥作用。我现在有一个新的研究方向,但是如果有人链接到与此相关的资源,我将非常感激。

android

17
推荐指数
1
解决办法
683
查看次数

Oracle的deployjava.js在Firefox/Chrome中不再起作用.我还可以做些什么?

由于Firefox和Chrome阻止了Java插件,Oracle的deployjava.js使用了一种技巧来检测JRE - 使用navigator.mimeTypes数组并在其中定位Java的mime类型.

但Firefox不再公开navigator.mimeTypes.从版本53开始,它是一个空数组.

对于Chrome,该阵列仍然可以访问,但不再包含Java的mime类型.

我已经将我的applet迁移到了使用JNLP,但我仍然需要确保客户端有一个合适的JRE,否则最终用户将看到一个对话框,要求他们选择一个应用程序来启动.jnlp文件,他们赢了我不知道该怎么做.

我可以使用哪些其他方法从我的网站验证客户端计算机上的JRE?

javascript java firefox google-chrome

9
推荐指数
1
解决办法
199
查看次数

使用AXIS1生成自上而下的Web服务使我的complexType分开

这是我的整个WSDL:

<?xml version="1.0" encoding="utf-8"?>
<definitions    name="TokenService" 
                targetNamespace="urn:mace:ideas:TokenNamespace"
                xmlns="http://schemas.xmlsoap.org/wsdl/" 
                xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                xmlns:tns="urn:mace:ideas:TokenNamespace" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <types>
        <xs:schema  targetNamespace="urn:mace:ideas:TokenNamespace"
                    version="1.0" 
                    xmlns:tns="urn:mace:ideas:TokenNamespace" 
                    xmlns:xs="http://www.w3.org/2001/XMLSchema">

            <!-- A single HTTP header -->
            <xs:complexType name="httpHeader">
                <xs:sequence>
                 <xs:element name="Content" type="xs:string" />
                 <xs:element name="Usage">
                   <xs:simpleType>
                     <xs:restriction base="xs:string">
                       <xs:enumeration value="new" id="new" />
                       <xs:enumeration value="always" id="always" />
                       <xs:enumeration value="once" id="once" />
                     </xs:restriction>
                   </xs:simpleType>
                 </xs:element>
                </xs:sequence>
            </xs:complexType>      

            <!-- A list of HTTP headers -->
            <xs:complexType name="httpHeaders">
                <xs:sequence>
                    <xs:element name="httpHeader" type="tns:httpHeader" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>

            <!-- EACommand Id -->
            <xs:simpleType name="EACommandId">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="ReadDG" /> …
Run Code Online (Sandbox Code Playgroud)

java web-services

8
推荐指数
1
解决办法
144
查看次数

PowerShell Installing NuGet, says unable to access internet, but I actually can

I followed the steps mentioned in Using PowerShell Behind a Proxy to configure my proxy server.

netsh winhttp set proxy "[IP]:[Port]"
$Wcl = New-Object System.Net.WebClient
$Creds = Get-Credential
$Wcl.Proxy.Credentials = $Creds
Run Code Online (Sandbox Code Playgroud)

A dialog popped up to collect my credential on the third line.

Then I tried to install NuGet:

PS C:\Users\Administrator> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
WARNING: Unable to download from URI 'https://go.microsoft.com/fwlink/
         ?LinkID=627338&clcid=0x409' to ''.
WARNING: Unable to download the list of available providers. Check your internet
         connection. …
Run Code Online (Sandbox Code Playgroud)

powershell nuget

2
推荐指数
3
解决办法
1083
查看次数