2011-04-08 2 views
0

저는 Aho-Corasick 알고리즘으로 해시가 생성되었지만 최근에 오픈 소스 안티 바이러스 소프트웨어를 개발하기 시작했습니다.Aho-Corasick 해시를 생성하는 방법

private static String readFile(String path) throws IOException { 
    FileInputStream stream = new FileInputStream(new File(path)); 
    try { 
    FileChannel fc = stream.getChannel(); 
    MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); 
    /* Instead of using default, pass in a decoder. */ 
    return Charset.defaultCharset().decode(bb).toString(); 
    } 
    finally { 
    stream.close(); 
    } 
} 

이 그럼 당신은 사용할 수 있습니다 : 나는 자바에서이

+0

을 얻기 위해 다음? 왜 실행 파일을 문자열로 읽을 수 없습니까? – Davidann

+0

죄송합니다. 저는이 분야에서 매우 새롭습니다. 바이러스 데이터베이스는 Aho-Corasick 해시로 미리 포맷되어 있으므로 어떻게 든 생성 할 수 있어야합니다. – James

+0

걱정하지 마십시오. :) 내가 작성하려고했던 점은 다음과 같습니다. 문자열에서 해시를 생성하는 방법을 알고, 실행 파일을 문자열 (데이터)로 읽고 문자열에서 해시 알고리즘을 수행하는 것이 어떻습니까? 참고, 나는 String 데이터 유형을 말하는 것이 아니라 오히려 "string"의 추상 개념을 참조합니다. – Davidann

답변

0

에 대한 인터넷에 거의 모든 정보를 발견로

나는, 아호-Corasick 실행 파일에서 해시를 생성하는 방법을 알고 싶어요 MD5 해시 문자열에서 다른 실행 파일을 만드는 것

byte[] bytesOfMessage = readFile("filepath").getBytes("UTF-8"); 
MessageDigest md = MessageDigest.getInstance("MD5"); 
String thedigest = Arrays.toString[md.digest(bytesOfMessage)]; 
+0

애플리케이션 개발자는이 MessageDigest 클래스에 정의 된 메소드에만 주목해야합니다. 슈퍼 클래스의 모든 메소드는, 독자적인 메세지 다이제스트 알고리즘의 구현을 제공하는 암호화 서비스 프로 바이더를 대상으로하고 있습니다. (출처 : http://download.oracle.com/javase/6/docs/api/java/security/MessageDigest.html) – Margus

+0

질문을 이해하면 제임스가 지원하려고하는 특정 해시 형식이 있습니다. MD5는 유용하지 않습니다. – Andy

+0

@ 앤디 그는 그가 시도한 것을 보여주기 위해 어떤 노력도 기울이지 않았습니다. 그래서 저는 어떻게해야하는지에 대한 예를 보여주었습니다. 예제에서는 MD5 해시 파일을 만들었습니다. messagedigest에 대한 사용자 지정 해시를 만드는 방법에 대해 자세히 설명 할 수는 있었지만 Java를 이해하는지 여부는 확실하지 않았습니다. MD5는 유용 할 필요는 없습니다. 단지 공간 필러입니다. – Margus

관련 문제