MD5 munge のメッセージを準備する Java コードがあります。
private static char[] jimsCopyRight = {
'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ':', ' ', 0xa9, ' '};
で使用される
StringBuffer message = new StringBuffer();
message.append(name.toLowerCase()); message.append(新しい文字列(jimsCopyRight));
を使用してメッセージを印刷すると
for(int i = 0; i < message.length(); i++){
System.out.println(" i = " + i + " char " + message.substring(i, i + 1) + " charAT " + message.charAt(i)); }
i = 14 char \251 charAT \251 を取得し、message.toString は jimCopyright: \251 です。
同じ文字で NSMutableString を作成する必要があります。
私が試したことの中で
wDevCopyright = [NSString stringWithFormat:@"jimCopyright: %c ", 0xa9];
for(int i = 0; i < [message length]; i++){
NSLog(@"i = %d char %c %d", i, [message characterAtIndex:i], [message characterAtIndex:i]);
}
i = 14 文字 © 169
NSMutableString を StringBuffer と同じにするための助けをいただければ幸いです。
問題は、MD5 で 2 つの文字列を変更すると、0xa9 を追加すると異なる結果が得られることです。プリントは弦を見るためのものです。
Java の char[] と NSMutableString の構造に関係があると思います。私はそれらが同じ価値観であるとは信じていません。
私はいくつかのCコードを持っており、著作権を次のように宣言しています
#define jimsCopyRight "Copyright: � "
Java MD5 と C MD5 の著作権は同じです。