微信一物一码二维码包解密Java版 微信二维码包buffer解密​​​​​​​Java版

àì夳堔傛蜴生んèń 2022-12-10 15:00 53阅读 0赞

微信一物一码二维码包解密Java版 微信二维码包buffer解密Java版

一、前言

1、在做微信一物一码解密操作时,关于二维码包解密操作的描述内容十分简单,也没有对应的解密示例,一直纠结着如何实现Java版解密,耽误了不少时间,故而写此文记录下过程。

20200927101737959.png

二、获取相关数据

1、获取密钥key:申请一物一码通过后,在【微信公众平台】,消息中心可以获取对应的密钥。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhSGFfU2ly_size_16_color_FFFFFF_t_70

2、获取二维码加密数据,点击获取 步骤是【2.4 下载二维码包接口】,略。

三、解密操作

1、使用 WechatUtils 工具类解密操作,全部代码这里 , 核心解密代码如下:

  1. /**
  2. * description: 微信一物一码, 二维码解密
  3. * @param encrypted
  4. * @param session_key
  5. * @return String
  6. * @version v1.0
  7. * @author w
  8. * @throws Exception
  9. * @date 2020年9月25日 下午4:39:08
  10. * @see https://developers.weixin.qq.com/doc/offiaccount/Unique_Item_Code/Unique_Item_Code_API_Documentation.html#10
  11. */
  12. public static String qrDecrypt(String encrypted, String key) {
  13. // 实名数据,先进行base64解码
  14. byte[] encryptedData = Base64.decodeBase64(encrypted);
  15. // key 没有进行编码,直接转换即可
  16. byte[] keyBytes = key.getBytes();
  17. // iv使用加解密钥 --- iv 根据密钥生成的
  18. String result = null;
  19. try {
  20. init();
  21. AlgorithmParameters iv = generateIV(keyBytes);
  22. result = new String(decrypt(encryptedData, keyBytes, iv));
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. return result ;
  27. }

2、测试

  1. @Test
  2. public void test() throws Exception {
  3. // 读取加密文件数据
  4. BufferedReader bufferedReader = new BufferedReader(new FileReader("buffer2.txt"));
  5. String line ;
  6. StringBuilder sb = new StringBuilder();
  7. while((line = bufferedReader.readLine()) != null) {
  8. sb.append(line);
  9. }
  10. bufferedReader.close();
  11. // 执行解密操作
  12. String key = "您的密钥";
  13. String qrDecrypt = qrDecrypt(sb.toString(), key);
  14. System.out.println(qrDecrypt);
  15. }

3、解密后数据如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhSGFfU2ly_size_16_color_FFFFFF_t_70 1

和微信提供的解密数据格式一致,解密成功!

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhSGFfU2ly_size_16_color_FFFFFF_t_70 2

参考资料:https://thinkcode.blog.csdn.net/article/details/108801090

发表评论

表情:
评论列表 (有 0 条评论,53人围观)

还没有评论,来说两句吧...

相关阅读