`
jv520jv
  • 浏览: 2668 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MD5用户API授权工具

阅读更多
背景:
有多个用户需要访问系统的API,但是有部分非法用户大量的调用系统API,导致系统无法正常提供服务.
解法:
对用户请求进行鉴权,屏蔽非法请求,下面是用MD5方式对用户请求鉴权.
用户请求时根据用户名和私钥生成token,服务端校验token生成是否一致.
public class Md5Utils {
	private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");

	public static String getMD5(byte[] bytes) {
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
		char str[] = new char[16 * 2];
		try {
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			md.update(bytes);
			byte tmp[] = md.digest();
			int k = 0;
			for (int i = 0; i < 16; i++) {
				byte byte0 = tmp[i];
				str[k++] = hexDigits[byte0 >>> 4 & 0xf];
				str[k++] = hexDigits[byte0 & 0xf];
			}
		} catch (Exception e) {
			// TODO
		}
		return new String(str);
	}

	public static String getMD5(String value) {
		String result = "";
		try {
			result = getMD5(value.getBytes("UTF-8"));
		} catch (Exception e) {
			// TODO
		}
		return result;
	}

	public static String getToken(String username, String key) {
		Date today = new Date();
		String sign = getMD5(username + SIMPLE_DATE_FORMAT.format(today) + key);
		return sign;
	}


	public static void main(String[] args) {
		System.out.println(getToken("username", "password"));
	}
}





分享到:
评论

相关推荐

    应用实例(MD5+地图API)

    总结来说,这个应用实例展示了MD5作为数据哈希工具和地图API作为位置服务提供者的结合,创造出一种创新且安全的位置共享方式。通过学习和理解这两个技术,开发者可以开发出更多有趣且实用的应用,满足用户在信息安全...

    跨平台 AES MD5 ECC DES RSA 加密解密 支持 进度 支持多种编码.源码.FlyUtils_md5加密解密工具类

    本文将详细介绍标题和描述中提到的几种加密算法:AES、MD5、ECC、DES以及RSA,并结合源码库"FlyUtils"探讨它们在跨平台环境下的应用,以及如何支持进度显示和多种编码。 首先,AES(Advanced Encryption Standard)...

    labview基于MD5/HMAC等加密算法

    在“20211028_License_A00”这个文件名中,我们可以推测这可能是一个与授权或许可证相关的文件,可能包含了使用LabVIEW实现加密算法的示例代码、教程或者是特定版本的LabVIEW工具。这类文件对于学习和理解如何在...

    获取CPUID及MD5加密方法

    尽管如此,MD5仍然是很多基础教学和非安全场景下的常用工具。 在标题所描述的场景中,获取CPUID并用MD5加密,可能是为了创建一种设备特有的标识。因为CPUID相对稳定且不易更改,可以作为计算机的唯一标识。然后通过...

    Asp.Net MD5加密程序dll版[32位加密](带示例演示)

    Asp.Net MD5加密程序是一种用于安全数据处理的工具,主要功能是对用户输入的数据进行哈希加密,确保数据在传输和存储过程中的安全性。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它能将任意...

    MD5值和SHA1值

    在命令行中,使用keytool工具(通常位于Java SDK的bin目录下)并指定keystore文件,可以获取对应的MD5和SHA1指纹。例如: ``` keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass ...

    加密 解密 源程序 源代码 BCB 示例 范例 MD5 C++Builder

    例如,可以使用CryptoAPI、OpenSSL等库来实现加解密和MD5计算。开发者可以直接调用这些库中的函数,无需从零开始编写加密算法。 在压缩包中,"crypt"这个文件名可能是加密模块的名称,它可能包含了一个或多个源文件...

    中国国内可用API合集.md

    有道云笔记除了提供Android SDK外,还开放了API供开发者使用,支持授权管理、用户信息、笔记本管理、笔记操作、分享链接、附件上传等多个方面的功能。 ### 出行类API #### 滴滴出行 滴滴出行提供的API包括iOS和...

    springboot+Thymeleaf+MD5加密前后端分离,米尚商城项目,可用于(毕业设计).zip

    3. 权限控制:如OAuth2.0或JWT(JSON Web Tokens)可能被用来实现用户认证和授权,确保只有合法用户能访问特定资源。 4. RESTful API设计:后端提供的接口应遵循REST原则,以便于前端调用和维护。 5. 测试:单元测试...

    如何申请一个APIkey

    总之,申请API Key是Android应用集成第三方服务的重要步骤,确保正确获取并使用MD5指纹,以及妥善保管API Key,都是开发过程中的关键环节。通过遵循上述步骤,你可以顺利地为你的应用申请并使用Google Maps API。

    淘宝Top api

    5. **MD5加密**:在API交互中使用MD5加密数据,保证通信安全。 掌握这些知识点,开发者就能够构建与淘宝平台深度集成的应用,例如自动化店铺管理工具、数据分析应用或者营销自动化系统。在实际开发中,还需注意淘宝...

    EnDecrypt.zip_AES_MD5 文件加密_brief8me_md5_加密解密

    AES负责对文件内容进行加密,防止未经授权的访问,而MD5则用于验证解密后的文件是否正确无误。这样的组合在许多实际应用场景中非常常见,例如在云存储、电子邮件附件或软件分发等领域。 为了使用这个库,开发人员...

    Go-GolangHttpAPI签名验证工具包提供对API请求的签名生成签名校验等工具类

    Go-Golang HttpAPI签名验证工具包是专为此目的设计的,它提供了生成和校验API请求签名的功能,有助于防止数据篡改和未经授权的访问。下面将详细介绍这个工具包的工作原理和使用方法。 1. **签名生成** - **哈希...

    oss.rar_OSS_md5加密_oss的加密算法_加密算法 OSS_登录

    它提供了丰富的API和工具,使得开发者可以方便地进行数据上传、下载、管理和处理。在使用OSS服务时,数据的安全性是至关重要的,这就涉及到加密技术的应用。 MD5(Message-Digest Algorithm 5)是一种广泛使用的...

    c++获取主板码转化MD5.7z

    1. **导入必要的库**:如Windows API的头文件(如`windows.h`),以及可能的第三方库,如果需要的话,用于MD5计算,如`openssl`库。 2. **获取主板码**:通过调用Windows API函数,例如`CreateToolhelp32Snapshot`,...

    CSDN博客导出工具

    1. **认证与授权**:首先,工具需要获取用户的CSDN账号权限,这通常需要用户登录并授权,以便工具能够访问其博客数据。 2. **数据抓取**:获得授权后,工具会通过API请求获取博客列表和每篇博客的详细内容。 3. **...

    在线考勤系统-后端API文档.zip

    8. **测试工具**:为了便于开发和调试,API文档通常会提供测试示例,如使用Postman或curl命令,展示如何发送请求并解析响应。 综上所述,在线考勤系统的后端API文档详细阐述了各个接口的功能、调用方式以及交互逻辑...

    c# 人人网API SDK(2011-05-17)

    5. 工具或辅助程序:如 `Authenticator.exe`,用于用户授权和获取OAuth令牌。 通过这个SDK,开发者可以: - **用户认证**:使用OAuth协议,让用户授权应用访问他们的人人网账户信息。 - **数据请求**:调用API获取...

    PDFlib-API

    PDFlib API在分发时,还包含了经过修改的第三方软件组件,例如ICClib、GIF图像解码器、PNG图像参考库(libpng)、Zlib压缩库、TIFFlib图像库、密码软件、JPEG软件、ExpatXML分析器以及MD5消息摘要算法等。这些组件的...

Global site tag (gtag.js) - Google Analytics