阿里云物联网平台Android加密实现

踩完坑之后跳出来@GROUNDSPACE

MQTT hmacsha1算法

IOT访问远端服务器需要输入密码,通常会采用md5或者sha1加密算法。
参考文档中给出的是js算法实现,这里给出其java实现。

public class Utils {
    public static final String bytesToHexString(byte[] bArray) {
        StringBuffer sb = new StringBuffer(bArray.length);
        String sTemp;
        for (int i = 0; i < bArray.length; i++) {
            sTemp = Integer.toHexString(0xFF & bArray[i]);
            if (sTemp.length() < 2) {
                sb.append(0);
            }
            sb.append(sTemp.toUpperCase());
        }
        return sb.toString();
    }

    public static String encryptHMAC(String signMethod, String content, String key) throws Exception {
        SecretKey secretKey = new SecretKeySpec(key.getBytes("utf-8"), signMethod);
        Mac mac = Mac.getInstance(secretKey.getAlgorithm());
        mac.init(secretKey);
        byte[] data = mac.doFinal(content.getBytes("utf-8"));
        return bytesToHexString(data);
    }
}
说明:

函数名:encryHAMC
参数:signMethod,content,key
其中signMethod可以选择 “hmacsha1”,或者“hmacmd5”;
content是需要加密的内容;
key是密钥。

应用示例
String mqttPassword = "";
try {
	mqttPassword = encryptHMAC("hmacsha1", content, deviceSecret);
} catch (Exception e) {
	throw new RuntimeException(e);
}
System.out.println("calc password : " + mqttPassword);
mqttConnectOptions.setPassword(mqttPassword.toCharArray());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值