行为式验证码(成语点选)(C#版和Java版)
发布人:shili8
发布时间:2025-01-15 13:03
阅读次数:0
**行为式验证码(成语点选)**
行为式验证码是一种基于用户交互的验证码,通过要求用户完成特定的任务来验证其身份。这种验证码可以有效地防止机器人或其他自动化工具进行恶意操作。
在本文中,我们将实现一个简单的行为式验证码系统,使用成语点选作为验证方式。我们将分别使用C#和Java两种语言编写该系统。
**成语点选**
成语点选是一种典型的行为式验证码形式。用户需要从一组成语中选择正确的答案。例如:
* 成语:春风得意*选项:
* A. 春天很美丽 * B. 人生如梦 * C. 春风得意**C#版**
### 成语点选类
csharpusing System;
using System.Collections.Generic;
public class ChengYuPointSelect{
private List<string> chengYus; // 成语列表 private Dictionary<string, string> options; //选项字典 public ChengYuPointSelect()
{
chengYus = new List<string>();
options = new Dictionary<string, string>();
}
// 添加成语 public void AddChengYu(string chengYu)
{
chengYus.Add(chengYu);
}
// 添加选项 public void AddOption(string chengYu, string option)
{
if (chengYus.Contains(chengYu))
{
options[chengYu] = option;
}
else {
Console.WriteLine("成语不存在!");
}
}
// 验证用户答案 public bool VerifyAnswer(string userAnswer, string chengYu)
{
if (chengYus.Contains(chengYu) && options.ContainsKey(chengYu))
{
return options[chengYu] == userAnswer;
}
else {
Console.WriteLine("成语或选项不存在!");
return false;
}
}
}
### 主函数
csharpclass Program{
static void Main()
{
ChengYuPointSelect chengYuPointSelect = new ChengYuPointSelect();
// 添加成语 chengYuPointSelect.AddChengYu("春风得意");
// 添加选项 chengYuPointSelect.AddOption("春风得意", "A. 春天很美丽");
// 验证用户答案 string userAnswer = "A. 春天很美丽";
string chengYu = "春风得意";
if (chengYuPointSelect.VerifyAnswer(userAnswer, chengYu))
{
Console.WriteLine("验证成功!");
}
else {
Console.WriteLine("验证失败!");
}
Console.ReadKey();
}
}
**Java版**
### 成语点选类
javaimport java.util.ArrayList;
import java.util.HashMap;
public class ChengYuPointSelect {
private ArrayList chengYus; // 成语列表 private HashMap options; //选项字典 public ChengYuPointSelect() {
chengYus = new ArrayList<>();
options = new HashMap<>();
}
// 添加成语 public void addChengYu(String chengYu) {
chengYus.add(chengYu);
}
// 添加选项 public void addOption(String chengYu, String option) {
if (chengYus.contains(chengYu)) {
options.put(chengYu, option);
} else {
System.out.println("成语不存在!");
}
}
// 验证用户答案 public boolean verifyAnswer(String userAnswer, String chengYu) {
if (chengYus.contains(chengYu) && options.containsKey(chengYu)) {
return options.get(chengYu).equals(userAnswer);
} else {
System.out.println("成语或选项不存在!");
return false;
}
}
}
### 主函数
javapublic class Main {
public static void main(String[] args) {
ChengYuPointSelect chengYuPointSelect = new ChengYuPointSelect();
// 添加成语 chengYuPointSelect.addChengYu("春风得意");
// 添加选项 chengYuPointSelect.addOption("春风得意", "A. 春天很美丽");
// 验证用户答案 String userAnswer = "A. 春天很美丽";
String chengYu = "春风得意";
if (chengYuPointSelect.verifyAnswer(userAnswer, chengYu)) {
System.out.println("验证成功!");
} else {
System.out.println("验证失败!");
}
System.out.println();
}
}
以上是C#和Java版的成语点选验证码系统。该系统使用成语点选作为验证方式,要求用户从一组成语中选择正确的答案。通过添加成语和选项,以及验证用户答案,可以有效地防止机器人或其他自动化工具进行恶意操作。

