Tag: 安全

我该如何创建密码?

我想给一些用户提供一百万个密码: 它必须至少有6个字符 它必须有数字和字母 我应该在这里使用Random吗? 怎么样?

Java AES / GCM / NoPadding – 什么是cipher.getIV()给我的?

我在Java 8中使用AES/GCM/NoPadding加密,我想知道我的代码是否存在安全漏洞。 我的代码似乎有效 ,因为它加密和解密文本,但一些细节尚不清楚。 我的主要问题是: Cipher cipher = Cipher.getInstance(“AES/GCM/NoPadding”); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] iv = cipher.getIV(); // ????? IV是否满足“对于给定的密钥,IV不得重复”的要求。 来自RFC 4106 ? 我也很感激我对相关问题的任何答案/见解(见下文),但第一个问题最让我烦恼。 我不知道在哪里可以找到解决此问题的源代码或文档。 这是完整的代码,粗略。 如果我在撰写这篇文章时引入了错误,我深表歉意: class Encryptor { Key key; Encryptor(byte[] key) { if (key.length != 32) throw new IllegalArgumentException(); this.key = new SecretKeySpec(key, “AES”); } // the output is sent to users byte[] encrypt(byte[] […]

如何为我的Java软件创建许可证?

我有一个很大的问题。 那就是“如何为我的软件创建许可证”。 好的,认为这是我的许可证密钥 – 12345YW 当用户输入此许可证密钥时,软件应允许他使用该软件。 好吧,一旦用户输入许可证密钥,我的软件必须记住他已经输入了有效密钥,对吗?(因为从下一次起,它不必提示许可证对话框)我的问题是,如何让我的软件记住用户已输入许可证? 在基于Windows的应用程序中,他们大多数人都在输入Windows注册表的条目。 我可以这样做吗? (那么Ubuntu和Mac呢?) 我想写一个.txt文件,以便软件可以读取它并查找是否输入了许可证。 然而,这是我能想到的最安全的系统。 因此,如果我输入上述许可证密钥,我该如何让我的软件记住它? 我很高兴你能给我一个代码示例(即:我不知道如何编辑注册表,如果是Windows注册表等)。 请帮帮我…

如何在Java中使用SHA-512散列密码?

我一直在研究Java String加密技术,遗憾的是我还没有找到任何关于如何在Java中使用SHA-512散列String的好教程。 我读了一些关于MD5和Base64的博客,但它们并不像我想的那样安全(实际上,Base64不是加密技术),所以我更喜欢SHA-512。

JAAS和JAAP有什么区别?

JAAS和JAAP有什么区别? JAAS :Java身份validation和授权服务 JAAP :??

如何限制Java中JPasswordField的位数?

我有我的Java代码在Eclipse中工作,但我需要添加一些function。 首先,如何限制用户可以输入的位数? 实际上我有一个JPasswordField让一个人输入一个pin代码,我希望这个JPasswordField最多限制为4位数。 那么如何在输入4位数字后立即停止输入? 然后,我如何玩JPassword框的大小? 有没有办法像JTextField一样修改它? 因为我的行“p1.setPreferredSize(new Dimension(100,25));” 似乎并没有真正让我修改盒子的大小。 如您所见,JPassworldField框具有默认大小,我无法弄清楚如何轻松修改。 这是我的代码: package codePin; import java.io.*; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Main extends JFrame { private static final long serialVersionUID = 1L; private JPanel container = new JPanel(); private JPasswordField p1 = new JPasswordField(4); private JLabel label = new […]

Java安全会话

无论何时进行身份validation,您的应用程序都应更改其使用的会话标识符。 这有助于防止某人设置会话,复制会话标识符,然后欺骗用户使用会话。 由于攻击者已经知道会话标识符,因此他们可以在用户登录后使用它来访问会话,从而为其提供完全访问权限。 这种攻击被称为“会话固定”等。 一旦用户登录系统,如何更改会话ID?

在Java中的范围内统一生成安全随机数

如何在一个范围内生成安全的统一随机数? 范围可以在0到100之间。(上限不是2的幂)。 java.security.SecureRandom似乎提供范围0..2^n 。

如何保护我的申请免受盗版

可能重复: 软件许可证密钥是如何生成的? 我是软件开发的初学者,我想知道如何在我的Java应用程序上实现保护系统以防止盗版。 我知道没有完美的解决方案。 但我只是想知道如何保护它。 并且不要告诉我让它成为开源,在我的情况下这是不可能的:)。 谢谢你的时间和答案。

java中的网络通信加密

我和朋友正在开发一个带有客户端/服务器的Java游戏 – 架构。 它运作良好,但我遇到了一个问题。 我们使用TCP套接字在服务器和客户端之间建立联网。 我们的网络协议没有加密,只能由不愿看流的人阅读。 我们考虑过如何在其中应用某种加密技术来隐藏登录信息并阻止人们编写自己的客户端。 但是添加/减少字节等基本内容似乎很容易理解。 用于加密游戏网络通信(或至少游戏登录信息)的常用方法是什么? 在java中编写服务器和客户端,是否有任何有用的Java库?