boolean function ( byte [ ] arg0 , byte [ ] arg1 ) { int loc0 = arg0 . length ^ arg1 . length ; for ( int loc1 = 0 ; loc1 < arg0 . length && loc1 < arg1 . length ; loc1 ++ ) loc0 |= arg0 [ loc1 ] ^ arg1 [ loc1 ] ; return loc0 == 0 ; }
compares two byte arrays in length-constant time . this comparison method is used so that password hashes can not be extracted from an on-line system using a timing attack and then attacked off-line . concode_field_sep int HASH_BYTE_SIZE concode_elem_sep int PBKDF2_ITERATIONS concode_elem_sep int SALT_INDEX concode_elem_sep int ITERATION_INDEX concode_elem_sep int SALT_BYTE_SIZE concode_elem_sep int PBKDF2_INDEX concode_elem_sep String PBKDF2_ALGORITHM concode_field_sep byte[] pbkdf2 concode_elem_sep byte[] fromHex concode_elem_sep boolean validatePassword concode_elem_sep boolean validatePassword concode_elem_sep String toHex concode_elem_sep void main concode_elem_sep String createHash concode_elem_sep String createHash