0

Objective C で次のプロセスから署名を作成するプロセスを実行する必要があります。

  1. NSString を ASCII エンコードする
  2. MD5 で結果をハッシュする
  3. 結果のバイト (&127) に対してビット演算を実行します。
  4. Base64 文字列に変換

どこから始めればいいのか困っています。私は C# でこのタスクを完了することができますが、Objective C または ANSI C でさえ途方に暮れています。

以下を使用して、最初の NSString から UTF8String を取得するところまで来ました。

[NSString UTF8String]

うまくいけば、あなたが助けることができます.

4

1 に答える 1

1
  1. 文字列変換を読み取る
  2. H2CO3によるダウンロードNSStringMD5カテゴリ
  3. Base64エンコーダーを選択してください

文字列変換に問題があるとおっしゃいましたが、これはASCIIに変換したいものです。

NSString* src = @"";
NSData* data = [src dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion: YES];
NSString* ascii = [[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding];

ビット単位の演算を実行するのは少し複雑です。次のように、ストレートCでこれを実行する必要があります。

NSString* src = <MD5 hashed result>
NSMutableString* dst = [[NSMutableString alloc] initWithCapacity: src.length];
for(NSUInteger i=0;i<src.length;i++) {
    unichar c = [src characterAtIndex: i];
    [dst appendFormat: @"%d", (c & 127)];
}

//Base64 encode dst

サードパーティは、必要に応じてその方法を説明する必要があります。

于 2012-08-14T13:35:32.567 に答える