用Java写一个接收手机号并判断是否为空然后把手机号加密发送到指定的地址的接口
以下是可能的解决方案:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.security.MessageDigest;
public class Main {
public static void main(String[] args) throws Exception {
// 读取用户输入的手机号
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入手机号:");
String phoneNumber = reader.readLine().trim();
// 判断手机号是否为空
if (phoneNumber.isEmpty()) {
System.out.println("手机号不能为空!");
return;
}
// 对手机号进行加密,例如使用 MD5
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(phoneNumber.getBytes("UTF-8"));
StringBuilder encryptedPhoneNumber = new StringBuilder();
for (byte b : bytes) {
encryptedPhoneNumber.append(String.format("%02x", b));
}
// 发送加密后的手机号到指定地址的接口
String apiUrl = "http://example.com/api?phoneNumber=" + URLEncoder.encode(encryptedPhoneNumber.toString(), "UTF-8");
URL url = new URL(apiUrl);
URLConnection conn = url.openConnection();
BufferedReader apiResponseReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String apiResponse = apiResponseReader.readLine();
System.out.println("接口返回结果:" + apiResponse);
// 关闭输入流和连接
reader.close();
apiResponseReader.close();
conn.getInputStream().close();
}
}
解释:
- 首先使用
BufferedReader从标准输入读取用户输入的手机号。 - 然后判断手机号是否为空,如果为空则输出错误信息并退出。
- 接着使用
MessageDigest对手机号进行加密,例如使用 MD5 算法。 - 然后使用
URLEncoder对加密后的手机号进行编码,以便在 URL 中传递。 - 构造完整的 API URL,包括加密后的手机号。
- 使用
URL和URLConnection发送请求并读取接口返回的内容。 - 输出接口返回的结果。
- 关闭输入流和连接。
需要注意的是,这只是一个简单的示例,实际上在生产环境中需要更多的错误处理和安全措施。例如,需要对用户输入的手机号进行格式验证,防止恶意输入或 SQL 注入攻击。另外,需要使用 HTTPS 协议保护数据传输安全,以及使用 API 密钥或其他身份验证方式确保只有授权用户才能访问接口。
原文地址: http://www.cveoy.top/t/topic/Ncm 著作权归作者所有。请勿转载和采集!