All pastes #58732 Raw Edit

Something

public text v1 · immutable
#58732 ·published 2006-05-24 23:14 UTC
rendered paste body
C++:

	bool Decode(const wxString& hash) {
		if (hash.Length() != MD4HASH_LENGTH * 2) {
			return false;
		}
		
		for ( size_t i = 0; i < MD4HASH_LENGTH * 2; i++ ) {
			unsigned char word = toupper(hash[i]);

			if ((word >= '0') && (word <= '9')) {
				word -= '0';				
			} else if ((word >= 'A') && (word <= 'F')) {
				word -= 'A' - 10;
			} else {
				// Invalid chars
				return false;
			}
			
			if (i % 2 == 0) {
				m_hash[i/2] = word << 4;
			} else {
				m_hash[i/2] += word;
			}
		} 

		return true;
	}

vs perl:

sub hash_string {
       $i = 0;
       $final_string = "";
       while ($i < 32) {
               $final_string = $final_string . &byte_string(hex(substr($_[0],$i,2)));
               $i += 2;
       }
       $final_string;
}