我们面临着编写一个提示用户输入密码的程序的挑战。正确的密码是“我喜欢Java编程” 应该是密码在我之前和之后都有一个空格,就像我写的一样。现在,有一个条件,如果用户在正确的密码之前或之后输入超过2个或更多的空格,计算机仍会接受它!你可以帮助我吗?
答案 0 :(得分:6)
用什么语言?
这是一个与语言无关的答案。
你有几个选择。
由于这似乎是一个家庭作业问题,我不想为你编写代码,我只想告诉你这个,你可以弄清楚如何用你需要使用的语言来实现它。
无论是代码还是后代,请确保花时间弄清楚我提出的每种方法的含义(即每种算法如何工作)以及为什么它(算法)都有效。能够理解为什么将来会帮助您解决类似的问题,并且还会让您在获得更多经验时为不同类别的问题提出自己的算法。
答案 1 :(得分:1)
这是我的聪明的aleck答案作为shell脚本:
#!/bin/sh
echo -n "Password: "
read given
if (echo "$given" | grep -x ' *I love shell scripting *' > /dev/null) ; then
echo "Password accepted"
else
echo "Access denied"
fi
为了确保安全,您可以散列密码:
#!/bin/bash
read -s -p "Password: " given
echo
hash=$(echo "$given" | sed 's/^ *//' | sed 's/ *$//' | sha1sum)
if [ "$hash" = "6ee322d4a87ec61912b363e704247a1dbad94975 -" ] ; then
echo "Password accepted"
else
echo "Access denied"
fi
我的观点是,在现实生活中,存储密码明文几乎总是一个坏主意(尽管对于这种分配安全肯定不是问题)。这是如何使密码更安全的一个相当简单的例子。
答案 2 :(得分:0)
如果您使用的是Java,请尝试使用String.trim()方法。