0

Blackberry OS10 用の OTP ジェネレーターを実装しようとしています。私はすでに Android 側で参照実装を使用しています。ここで見つけることができます。

そこでC++/QNXコードに変換したいのですが、16進数変換でちょっと困って...

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());

問題は「m」が「00」で始まるため、最終的なメッセージ配列の長さは 0 です...

たとえば、16進数のqstring:0000000002ca4e32をエンコードしようとします

ブラックベリーの場合: m=""

Android の場合: m="?M?"

それで、誰かがそのような変換に対処する方法を私に説明できますか?

ありがとう!

4

1 に答える 1

0

私がしたいことは、あなたの Java 関数を QT 形式ではなくプレーンな C++ に変換することです。次に、データ型を QT に適合させます。

于 2014-07-03T11:17:44.047 に答える