GaibAnd蓝海

库存融资系统与蓝海对接


签名算法

<pre><code>id:lanhai key:Z7dsot7gi8HEZytz</code></pre> <h5>基本描述</h5> <p>1 签名生成方式为 id+key+时间戳 采用AES加密;时间戳有效期五分钟,每次请求前都得重新生成一次签名</p> <pre><code class="language-java"> String id="lanhai"; String key="Z7dsot7gi8HEZytz"; long timeStamp=1660293642854; String sign=id+"&amp;"+key+"&amp;"+timeStamp; AesUtil.enCode(sign,key);</code></pre> <p>2 java使用AES加密代码</p> <pre><code class="language-java"> private static final String ALGORITHM = "AES/ECB/PKCS5Padding"; //"算法/模式/补码方式" /***************************************************** * AES加密 * @param content 加密内容 * @param key 加密密码,由字母或数字组成 此方法使用AES-128-ECB加密模式,key需要为16位 加密解密key必须相同,如:abcd1234abcd1234 * @return 加密密文 ****************************************************/ public static String enCode(String content, String key) { if (key == null || "".equals(key)) { logger.info("key为空!"); return null; } if (key.length() != 16) { logger.info("key长度不是16位!"); return null; } try { byte[] raw = key.getBytes(); //获得密码的字节数组 SecretKeySpec skey = new SecretKeySpec(raw, "AES"); //根据密码生成AES密钥 Cipher cipher = Cipher.getInstance(ALGORITHM); //根据指定算法ALGORITHM自成密码器 cipher.init(Cipher.ENCRYPT_MODE, skey); //初始化密码器,第一个参数为加密(ENCRYPT_MODE)或者解密(DECRYPT_MODE)操作,第二个参数为生成的AES密钥 byte [] byte_content = content.getBytes("utf-8"); //获取加密内容的字节数组(设置为utf-8)不然内容中如果有中文和英文混合中文就会解密为乱码 byte [] encode_content = cipher.doFinal(byte_content); //密码器加密数据 return Base64.encodeBase64String(encode_content); //将加密后的数据转换为字符串返回 } catch (Exception e) { e.printStackTrace(); return null; } }</code></pre>

页面列表

ITEM_HTML