dtcms 模板下载 springcloud multithreading datetime elasticsearch generics animation meteor deployment printing devise stl vb6 icons Uploadify lazyloadjs vue学习教程 后台管理系统模板 matlab读取dat文件 float占几个字节 bootstrap时间轴 hash怎么下载 linux管道符 kubernetes视频教程 python3基础教程 python安装mysql python3下载安装 windows搭建python开发环境 java包 javaswitch语句 java数据类型 java中的队列 java类的继承 javarandom java实例方法 java字符串格式化 java如何编写接口 java中的泛型 java配置jdk linuxtar命令
当前位置: 首页 > 学习教程  > 编程语言

获取微信步数

2020/9/19 15:06:23 文章标签:

获取微信步数

工具类

import org.apache.commons.codec.binary.Base64;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.spec.AlgorithmParameterSpec;

/**
 * @ClassName WxSportUtil
 * @Description 破解微信步数
 * @Author 尚展锋
 * @Date 2020/8/7 14:40
 * @Version 1.0
 */
public class WxSportUtil {
        /* *
         * @Author 尚展锋
         * @Description //步数转卡路里
         * @Date 14:53 2020/8/7
         * @Param [steps]
         * @return float
         **/
        public static float getDistanceByStep(long steps) {
            return steps * 0.6f / 1000;
        }
        /* *
         * @Author 尚展锋
         * @Description //微信解密运动步数
         * @Date 14:53 2020/8/7
         * @Param [sessionKey, encryptedData, iv]
         * @return java.lang.String
         **/
        public static String decryptWeChatRunInfo(String sessionKey, String encryptedData, String iv) {
            String result = null;
            byte[] encrypData = Base64.decodeBase64(encryptedData);
            byte[] ivData = Base64.decodeBase64(iv);
            byte[] sessionKeyB = Base64.decodeBase64(sessionKey);
            try {
                AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivData);
                Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
                SecretKeySpec keySpec = new SecretKeySpec(sessionKeyB, "AES");
                cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
                byte[] doFinal = cipher.doFinal(encrypData);
                result = new String(doFinal);
            }catch (Exception e){
                e.printStackTrace();
            }
            return result;
        }
}

调用

String decrypt = WxSportUtil.decryptWeChatRunInfo(RedisUtil.getStr("session_key" + params.get("member_id").toString()), params.get("encryptedData").toString(), params.get("iv").toString());
            JSONObject stepInfoListJson = JSON.parseObject(decrypt);
            //解析json,获取stepInfoList下面的步数
            JSONArray stepInfoList = JSON.parseArray(stepInfoListJson.getString("stepInfoList"));
            //获取今天的步数
            JSONObject today = Objects.requireNonNull(stepInfoList).getJSONObject(stepInfoList.size() - 1);
            System.out.println(today.get("step"));

本文链接: http://www.dtmao.cc/news_show_200212.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?