package com.fjxhx.wxpay.util; import java.util.Random; /** * User: rizenguo * Date: 2014/10/29 * Time: 14:18 */ public class RandomStringGenerator { /** * 获取一定长度的随机字符串 * @param length 指定字符串长度 * @return 一定长度的字符串 */ public static String getRandomStringByLength(int length) { String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } public static String getRandomIntegerByLength(int length) { String base = "0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } public static void main(String[] args) { RandomStringGenerator a=new RandomStringGenerator(); String b=a.getRandomStringByLength(13); System.out.println(b); } }
交易码
package com.fjxhx.wxpay.util; /** * 交易码生成器 * @author wx * */ public class TradeNoGenerator { public static String generator(String tradeType) { StringBuffer tradeNo = new StringBuffer(); tradeNo.append(tradeType); tradeNo.append(System.currentTimeMillis()); tradeNo.append(RandomStringGenerator.getRandomIntegerByLength(6)); return tradeNo.toString(); } public static void main(String[] args) { System.out.println(TradeNoGenerator.generator("JSAPI")); } }
相关推荐
5. **哈希与摘要**:除了加密,还可以使用哈希函数(如MD5、SHA系列)对字符串进行单向处理,生成固定长度的摘要,用于数据完整性验证。哈希函数不可逆,无法从摘要恢复原始数据,常用于密码存储。 6. **安全协议**...
流水号则需要确保全局唯一性,可以使用`java.util.Random`或`java.util.UUID`类生成随机数字或唯一标识符。将这两部分组合起来,就形成了完整的冠字号码。 在编写Java源码时,应考虑以下几点: 1. 异常处理:文件I...
在Android中,我们可以利用`java.util.Random`或`java.security.SecureRandom`类来生成随机数,然后将其转换为字符串,加入一些自定义的格式,如长度、字母数字混合等。 数字加密则是为了保护敏感信息的安全,...
UUID是一个128bit的数字,也可以表现为32个16进制的字符(每个字符0-F的字符代表4bit),中间用"-"分割。UUID由五部分组成:时间戳+UUID版本号、Clock Sequence号与保留字段、节点标识。UUID的唯一缺陷在于生成的...
对于微信支付而言,签名过程涉及到将特定的请求参数按照一定规则组合成字符串,然后使用商户的API密钥进行SHA1加密,生成的哈希值即为签名。这个签名会在请求微信服务器时一同发送,服务器会使用相同的算法和密钥...
实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 ...
实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的...
实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 ...
这种格式可能包括固定长度的字段或分隔符来区分不同的信息项。 2. **解析FSN文件**: 在Java中,解析FSN文件通常涉及读取文件内容,然后根据文件格式将数据分割成各个字段。可以使用`BufferedReader`或`Scanner`类...
实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求...
实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的...
`ByteUtil`可能包含了一系列方法,如`byteToHex`(将字节转换为十六进制字符串)和`hexToByte`(将十六进制字符串转换为字节数组),以便于在程序中处理二进制数据。 2. **密钥管理**:密钥是MAC算法的核心,`...
3. **IsoValue.java**:表示ISO8583报文中的单个字段值,支持多种数据类型,如数值、字符串、日期等,并且提供了解析和编码的方法。 4. **IsoType.java**:定义了ISO8583协议中的数据类型,如BIT、NUMERIC、ALPHA等...
这可能涉及到字符串操作、位运算以及校验位的计算。同时,为了批量转换,你需要一个包含多个UPC码的数据结构,如列表或数组,并遍历它们,逐一执行转换。 在实际应用中,这种转换可能用于供应链管理软件、库存控制...
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...
- 功能:生成指定长度的随机字符串作为卡号。 - 目的:确保每个用户都能获得唯一的卡号。 #### 六、安全性设计 为了确保数据库的安全性,采取以下措施: - 实施严格的访问控制策略,确保只有授权用户才能访问...
CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组) BINARY(二进制编码,在打包时将8位01值组装为一个字节), NUMERIC(BCD编码,即8421码), ...
文档中对签名机制进行了详细说明,包括生成待签名的字符串和签名方法。待签名字符串由多个参数组成,签名则有MD5、DSA和RSA等多种方式。 ### 错误码与建议 最后,文档还提供了批量付款业务和系统错误码的附录,...
3. 添加特定的MD5字符串进行加密。 #### 二、支付接口对比 ##### 2.1 开发环境 不同的第三方支付平台提供了多样化的开发工具和支持,以便商户能够轻松地集成支付接口。例如,支付宝和易宝支付都提供了.NET、ASP、...