0
我在一個scala程序中使用Madcreator的Rabinfingerprint java庫,https://github.com/themadcreator/rabinfingerprint。Madcreator Rabinfingerprint命令行vs java/scala程序
使用命令行我生成的不可約53度多項式:
java -jar rabinfingerprint.jar -polygen 53
31DF3F8C7356D3
然後指紋文件:
java -jar rabinfingerprint.jar -p 31DF3F8C7356D3 file.txt
1847CCD86D5DE5 file.txt
我在正在產生相同的輸出的問題,給出相同的輸入,使用代碼。
// Can't create Polynomial from hex above, so convert hex to long and use that:
val polynomial = Polynomial.createFromLong(14037737891124947L)
// val p = java.lang.Long.toString(14037737891124947L, 16)
// p = 31DF3F8C7356D3 same as command line input
val rabin = new RabinFingerprintLong(polynomial)
rabin.pushBytes(text.getBytes)
val fp = rabin.getFingerprintLong
println(java.lang.Long.toString(fp, 16)) // 1acc76a73eed1f
fp.toString // 7543159378603295
// Where is 1847CCD86D5DE5 ?
當你從命令行在文件上運行指紋時,它每次產生相同的結果? – dmitry
使用相同的多項式,是的。 –
你是如何得到'text'的?您需要確保您沒有從字符串中刪除換行符等。 –