与其他平台一样,跟进这个问题似乎合乎逻辑:Java中常见的非明显错误是什么?似乎他们应该工作的事情,但不是.
我不会给出如何构建答案的指导,或者什么"太容易"被认为是一个问题,因为这就是投票的目的.
也可以看看:
从char数组,我想构建一个流来使用java 8功能,如过滤器和地图.
char[] list = {'a','c','e'};
Stream<Character> cStream = Stream.of(list);
// Stream<Character> cStream = Arrays.stream(list);
Run Code Online (Sandbox Code Playgroud)
第一种方法不起作用(原因:将cStream更改为Stream<char[]>).注释行也不起作用(原因:stream(T[])类型数组中的方法不适用于arguments(char[])).
我知道如果char[] list更改为int[],一切正常使用IntStream.但我不希望每次转换char[]到int[]每个时间或更改到一个列表中,当我需要在使用流库char阵列.
我正在为包设计一个公共接口(API).我想知道,我应该CharSequence普遍使用而不是String.(我主要谈的是公共接口).
这样做有什么缺点吗?这被认为是一种好习惯吗?
如何将它用于类似标识符的目的(当值与基于散列的容器中的集合匹配时)?
处理敏感数据(==密码)的常见Java安全准则建议永远不要使用String对象来存储数据,而是使用字节或字符数组.我试图在HttpServlet处理程序中应用此指南.特别是,我使用类似于基本身份验证的方法,其中凭据在标头中传入(这是一个GET请求,因此没有正文).
我遇到的问题是,在没有生成String对象的情况下,似乎无法获取头数据,这违反了get-go的准则.我已经彻底搜索了一个解决方案,但没有找到任何相关的讨论.有没有人对此问题有任何见解?
注意:这是通过HTTPS进行的,因此这里没有连接安全问题.
可能重复:
为什么char []比字符串更适合密码?
当我准备的时候,OCPJP我来到了主题 - "从控制台读取用户输入".
有一个例子,它username在String引用中读取,而password在char[]数组中,但我无法理解为什么它使用了char数组..这是代码: -
Console console = System.console();
String username = console.readLine("User Name? ");
char[] password = console.readPassword("Password? ");
Run Code Online (Sandbox Code Playgroud)
这引起了我的疑问.为什么我们没有使用String引用来存储密码.由于Strings是不可变的,因此在String中读取密码必须更安全,因为其内容无法更改.
那么,password在char[]数组中阅读的重点是什么呢?
谁能在这件事上解释一下?
如何将字符数组转换为字符串?
我有这个代码
Console c = System.console();
if (c == null) {
System.err.println("No console.");
System.exit(1);
}
char [] password = c.readPassword("Enter your password: ");
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为String,以便我可以验证
if(stringPassword == "Password"){
System.out.println("Valid");
}
Run Code Online (Sandbox Code Playgroud)
谁能帮我这个?
我目前正在学习JavaFX,我对JavaFX中的PasswordField没有返回密码的char或甚至字节数组的方法感到有点困惑.相反,我必须使用返回String的getText().
正如你在这里可以看到的那样, swing决定将getText()方法标记为depricated,并告诉程序员使用getPassword()代替它,它返回一个char数组.
如果我正确地取消了,那么char数组会更安全,因为你可以通过将所有值设置为0来完全擦除它们.那么为什么Oracle决定在JavaFx中使用字符串?是否有一些从堆中删除字符串的新方法?
编辑:据我所知,字符密码更加节省,因为我们可以删除它们(覆盖它们),而不是字符串.
可能重复:
为什么char []比字符串更适合密码?
我在某处读到将敏感键存储为char []而不是String更好,因为后者可以在内存中找到.由于JPasswordField的getText()方法已被弃用,因此它也有一点意义.
这是真的?
我已经开始使用JJWT在我的服务器应用程序上处理JWT.
我的JWT秘密将存储在resources文件夹中,我将在Properties课程中加载秘密.
该JJWT提供了三种方法来签署JWT,一个用途byte[],其他用途String和其他用途Key:
JwtBuilder signWith(SignatureAlgorithm var1, byte[] var2);
JwtBuilder signWith(SignatureAlgorithm var1, String var2);
JwtBuilder signWith(SignatureAlgorithm var1, Key var2);
Run Code Online (Sandbox Code Playgroud)
问题:关于安全性,字符集和其他问题,我应该使用哪些建议?
一会儿,我站着String,因为Properties回来了String.
我有一个需要几个密码才能工作的Akka项目:访问数据存储区,分布式文件系统连接字符串......
这些值不是在配置文件中硬编码,而是在应用程序启动期间在运行时从密钥保管库中提取,然后存储在类型安全配置对象的内存中,因为第三方使用此配置来获取密码并打开连接.
我只是想知道这是否有风险,因为我猜测字符串将在内存中清晰.有没有办法透明地混淆/加密值?或者我是否需要在我这边实现它,并更新第三方,以便在实际打开连接之前转换字符串.
java ×10
security ×3
string ×3
char ×1
charsequence ×1
console ×1
http-headers ×1
java-8 ×1
java-stream ×1
javafx ×1
jjwt ×1
jwt ×1
passwords ×1
scala ×1
servlets ×1