1


0

C#アプリケーションで使用できるように、Cコードを変換するよう求められました。 このコードの断片は、設定ファイルに埋め込まれて渡される登録ライセンスキーを復号化するために使用されます。

それは私にとって一度に2バイト(訂正)の文字列を暗号化するように見えますし、私の人生のために、私はC#で同様のことをする方法を考え出すことができません。

void APIENTRY EncryptRegBuffer(LPSTR StrInput、int SizeInput、LPSTR StrOut){#define SEMENTE 17 #define COMUL 37 WORDランダム= SEMENTE; WORD * pw; int i;

memcpy(StrOut、StrInput、SizeInput); StrOut [SizeInput] = NULO; pw =(WORD *)StrOut。 (i = 0; i <(SizeInput / 2); i){ランダム* = COMUL; * pw =ランダム。
        ++pw;
}}

C#を使用して文字列に対してこの種の操作を実行する方法について、誰かに教えてもらえますか。

3 Answer


2


実際には一度に2バイト(WORDサイズ)で文字列をエンコードします。 これを書くための代替方法は、次のとおりです。

int j = 0。 (i = 0; iの場合


1


次のようなものはどうですか。

パブリック文字列EncryptRegBuffer(文字列入力){const UInt16 SEMENTE = 17; const UInt16 COMUL = 37;

int randomic = SEMENTE; string output = "";

foreach(入力の文字c){ランダム* = COMUL; output =(char)(c randomic);出力を返します。 }


0


私はあなたがそれが一度に2つの「ビット」だと思う場所を知りません。 それは全バイトを処理しているように見えます。 あなたが始めるためにあなたが必要とすべきことはすべてです:

byte [] bytes = ASCII.GetBytes(inputString);