java+密码生成器_使用Android创建强大的密码生成器 - java

这篇博客介绍了一个在Android应用中创建强密码生成器的过程。开发者通过监听用户选择的字符类型(大写字母、小写字母、数字、符号)和密码长度,动态构建允许的字符集合并生成符合要求的随机密码。
摘要由CSDN通过智能技术生成

因此,我正在构建一个根据用户规范生成强密码的应用。 UI的规范部分看起来像this。

n4A2s.png

以下是MainActivity.java类中的onCreate。我尝试创建一些逻辑,例如选中某个单选按钮时的if语句,以及每选中一个复选框就将允许的字符添加到String变量中。 View对象都是全局的,但是我无法弄清楚如何在用户设置的字符限制内使用每个允许的字符中的至少一个来创建随机String。

这是代码:

private static int MAX_LENGTH;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

capitalLetter = (CheckBox) findViewById(R.id.capital_letter);

lowercaseLetter = (CheckBox) findViewById(R.id.lowercase_letter);

numbers = (CheckBox) findViewById(R.id.numbers);

symbols = (CheckBox) findViewById(R.id.symbols);

passGroup = (RadioGroup) findViewById(R.id.passRadioGroup);

sizeFour = (RadioButton) findViewById(R.id.size_four);

sizeEight = (RadioButton) findViewById(R.id.size_eight);

sizeTwelve = (RadioButton) findViewById(R.id.size_twelve);

sizeSixteen = (RadioButton) findViewById(R.id.size_sixteen);

passHint = (EditText) findViewById(R.id.passwordHint);

passShow = (TextView) findViewById(R.id.passwordDisplay);

passGenerate = (Button) findViewById(R.id.passwordGenerate);

passClear = (Button) findViewById(R.id.passwordClear);

String allowedCharacters = "";

// Determines the types of characters permitted when a check box is checked.

if (capitalLetter.isChecked()) {allowedCharacters += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}

if (lowercaseLetter.isChecked()) {allowedCharacters += "abcdefghijklmnopqrstuvwxyz";}

if (numbers.isChecked()) {allowedCharacters += "0123456789";}

if (symbols.isChecked()) {allowedCharacters += "!@#$%^&*()_-+=<>?/{}~|";}

//Determines the length of the string based on which radio button the user has selected.

int checkedRadioButtonId = passGroup.getCheckedRadioButtonId();

if (checkedRadioButtonId == 1) {MAX_LENGTH = 4;}

if (checkedRadioButtonId == 2) {MAX_LENGTH = 8;}

if (checkedRadioButtonId == 3) {MAX_LENGTH = 12;}

if (checkedRadioButtonId == 4) {MAX_LENGTH = 16;}

}

参考方案

有关生成随机字符串的基本思想:

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值