我正在尝试为Blackberry OS10实现OTP生成器。我已经在Android端使用了参考实现,你可以找到它here:
所以我想将它转换为C ++ / QNX代码,我有一些十六进制转换的麻烦......
在java中:
private static byte[] hexStr2Bytes(String hex){
// Adding one byte to get the right conversion
// Values starting with "0" can be converted
byte[] bArray = new BigInteger("10" + hex,16).toByteArray();
// Copy all the REAL bytes, not the "first"
byte[] ret = new byte[bArray.length - 1];
for (int i = 0; i < ret.length; i++)
ret[i] = bArray[i+1];
return ret;
}
在QNX中:
QByteArray msg = QByteArray::fromHex(m.toLocal8Bit());
问题是&#34; m&#34;以&#39; 00&#39;开头所以我的最终msg数组是0长...
例如,我尝试编码十六进制qstring:0000000002ca4e32
在黑莓手机中:m =&#34;&#34;
在Android中:m =&#34;?M?&#34;
所以你可以解释一下如何处理这样的转换?
谢谢!
答案 0 :(得分:0)
我要做的是将您的Java函数转换为纯C ++,即不是QT格式。然后将数据类型调整为QT。