2012-01-22 2 views
-1

내가 파이어 폭스 확장 기능을 개발하고 있는데 내가 알고 싶습니다 : 내가 문자열에서 해시 값을 구한 후해시 값 유형은 무엇이며 비교 연산자를 사용할 수 있습니까?

  1. 을, 그 값은 어떤 데이터 유형입니까?
  2. 비교 연산자를 사용할 수 있습니까?

그래서 내가하고 싶은 것은 두 개의 해시 값을 비교하여 하나인지 확인하는 것입니다. 다른 것보다 높다. 비교하는 경우와 마찬가지로 5 >= 4. 이것이 가능한가? 정수와 같은 해시 값을 처리 하시겠습니까?

+1

어떤 프로그래밍 언어를 사용하고 있습니까? –

+0

mozila firefox의 확장 기능을 만들고 있기 때문에 자바 스크립트이지만 C++로 작성된 클래스를 사용합니다 ( – AndreiBogdan

+0

). 해시 값을 주문할 수는 있지만 결과는 일반적으로 정렬 순서와 다를 수 있습니다. 해시 된 객체. 왜 해시 값을 주문 하시겠습니까? –

답변

1

MD5은 가장 널리 사용되는 해싱 알고리즘 중 하나입니다. 합리적인 안전성과 비교하기 위해 사용할 수있는 문자열에서 16 진수를 제공합니다. 자바 스크립트의 경우 crypto-js을 시도 할 수도 있지만 그물에서 다른 많은 구현을 쉽게 찾을 수 있습니다.

1

Firefox 부가 기능에서는 nsICryptoHash을 사용해야합니다. 예를 들어, MD5 알고리즘은 다음과 같은 기능을 사용하는 것이 사용하여 문자열을 해시 할 경우 :이 base64로 인코딩 된 해시 값을 반환

function toMD5(str) 
{ 
    // Convert string to an array of bytes 
    var array = Array.prototype.slice.call(str); 

    // Create MD5 hash 
    var hashEngine = Components.classes["@mozilla.org/security/hash;1"] 
          .createInstance(Components.interfaces.nsICryptoHash); 
    hashEngine.init(hashEngine.MD5); 
    hashEngine.update(array, array.length); 
    return hashEngine.finish(true); 
} 

alert(toMD5("test")); // Displays: 8dP/hEMpdzKGLfIdxOVyYg== 

참고. finish(false)을 사용하여 원시 (이진) 해시 값을 가져옵니다.

관련 문제