`

Md5+Base64产生令牌

    博客分类:
  • java
阅读更多
import java.security.MessageDigest;
import java.util.Random;

import sun.misc.BASE64Encoder;

// 令牌产生器
public class TokenProccessor {
 
 // 单例
 private TokenProccessor(){}
 
 private static TokenProccessor instance = new TokenProccessor();
 
 public static TokenProccessor newInstance() {
  return instance;
 }
 
 // 产生令牌
 public String makeToken() {
  try {
   // 1. 产生一个随机数
   String token = new Random().nextInt(19999999) + ""
     + System.currentTimeMillis();
   // 2. 长度大小不一致
   // 指纹算法 消息摘要 md5 MessageDigest
   MessageDigest messageDigest = MessageDigest.getInstance("md5");
   byte[] md5 = messageDigest.digest(token.getBytes());
   
   // 将 任意的字节数组 转为可见的字符 转为明文
   // base64 算法
   BASE64Encoder encoder = new BASE64Encoder();
   String result = encoder.encode(md5);

   return result;
  } catch (Exception e) {
   throw new TokenException(e);
  }
 }

}




package cn.easyknow.elec.test;

import java.security.MessageDigest;
import java.util.Random;

import sun.misc.BASE64Encoder;

// 令牌产生器
public class md5Digest {
 
 // 产生令牌
 public static String makeToken(String password) {
  try {
   MessageDigest messageDigest = MessageDigest.getInstance("md5");
   byte[] md5 = messageDigest.digest(password.getBytes());
   
   // 将 任意的字节数组 转为可见的字符 转为明文
   // base64 算法
   BASE64Encoder encoder = new BASE64Encoder();
   String result = encoder.encode(md5);

   return result;
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
 }
public static void main(String[] args) {
 String token = makeToken("123411111");
 System.out.println(token);
}
}

分享到:
评论

相关推荐

    WebApi 使用TOKEN+签名验证

    头部和载荷都是JSON对象,通过Base64编码,而签名则是对前两部分和一个密钥进行哈希运算的结果,用于验证信息未被篡改。 - **JWT生成**:服务器在用户成功登录后生成JWT,其中载荷可以包含用户ID、过期时间等信息...

    PHP令牌 Token改进版

    在encrypt方法中,通过使用MD5算法生成随机密钥,并将传入的文本与密钥进行异或操作,接着对结果进行base64编码,并替换加号为下划线以防止在URL中被错误解析。 GToken类用于生成和处理令牌。它使用GEncrypt类来...

    springboot+vue实现超大文件分片极速上传与下载完整前后端源码

    6. **文件校验**:为了确保文件的完整性,项目可能采用了如MD5或SHA家族的哈希算法对文件进行校验。每个文件分片上传后,其哈希值会被计算并与服务器端记录进行比较,确保数据的一致性。 7. **前端上传组件**:项目...

    JWT令牌的使用以及一些算法

    MD5,SHA-128,SHA-256  数据完整性的校验, 秒传,先发散列值,判断服务器是否存在 散列值无法变成原始数据(不可逆) 密码在数据库的存储,散列函数+盐  不能找回密码,只能重置  加密算法  对称密钥(一个密钥...

    API接口设计之token、timestamp、sign

    JWT由头部(Header)、载荷(Payload)和签名(Signature)三部分组成,且通常以Base64编码的形式存储,易于在网络中传输。OAuth Token则主要用于授权,允许第三方应用代表用户访问特定资源。 `Timestamp`,时间戳...

    移动端接口文档示例

    2. 使用MD5算法对`'帐号+密码'`进行加密,生成一个32位的加密字符串B。 3. 最终加密后的密码格式为:B的前16位+A+B的后16位。 **状态码表**: | 状态码 | 描述 | |--------|---------------------------------------...

    接口文档示例

    使用 `md5(‘帐号+密码’)` 生成一个 32 位的加密字符串 B; 3. 最终加密后的密码格式为:B 的前 16 位 + A + B 的后 16 位。 - **返回值**: - **返回类型**: JSON - **结果示例**: - 错误情况:`{"code":10000...

    PHP封装的字符串加密解密函数

    base64_decode($string) : substr(md5($string . $key), 0, 8) . $string; $string_length = strlen($string); $rndkey = $box = array(); $result = ''; for ($i = 0; $i ; $i++) { $rndkey[$i] = ord($key...

    Pepper/Nao机器人如何调用百度翻译API

    sign = hashlib.md5((sorted_params + secret_key).encode()).hexdigest() return sign # 示例使用 text_to_translate = "你好,世界" translated_text = translate_text(text_to_translate, 'zh', 'en') print...

    php源码分析之DZX1.5随机数函数random用法

    首先,函数通过`md5()`计算当前微时间和服务器文档根目录的MD5值,然后使用`base_convert()`函数将其从16进制转换为十进制(如果`$numeric`为真)或35进制(如果`$numeric`为假)。这一步是为了确保种子字符串的复杂...

    shortly-deploy

    1. **哈希算法**:使用哈希函数(如MD5或SHA)将长URL转化为固定长度的哈希值,但哈希碰撞问题需要解决。 2. **Base64编码**:将哈希值进行Base64编码,使得结果更易读,但长度可能会比原始哈希值稍长。 3. **自增ID...

    github_api_test

    5. **README.md** - 项目说明文件,通常包含项目简介、如何运行、贡献指南等内容。 6. **github_api.py** 或类似的文件 - 这可能包含了实际调用GitHub API的Python代码。 7. **tests** 目录 - 测试代码存放的地方,...

    Cisco路由器手册

    2.9.6 7x00 10BaseT以太网 46 2.9.7 7x00 10BaseFL以太网 46 2.9.8 7x00快速以太网 47 2.9.9 7x00同步串行 47 2.9.10 7x00单端口Molex 200针插座 48 2.9.11 7x00同步串行E1-G.703/G.704 48 2.9.12 7x00令牌环 48 2.9...

Global site tag (gtag.js) - Google Analytics