小编out*_*tin的帖子

EVP_DecryptFinal上缺少8个字节

这是我的第一个问题所以请告诉我,如果我做错了什么:).

我的问题是我用的

EVP_DecryptInit(&ctx1, EVP_des_ecb(), tmpkey, NULL);
EVP_DecryptUpdate(&ctx1, keysigout, &outlu ,keysigin, keysigfilelength);
EVP_DecryptFinal(&ctx1, keysigout, &outlf);
printf("DECLEN:%i",outlu + outlf);
Run Code Online (Sandbox Code Playgroud)

解密二进制文件.该文件长248字节,但printf只告诉我EVP解密240字节.keysigfilelength是248,应该告诉更新需要解密248个字节.

我不明白为什么这不起作用,如果你能开导我会很高兴.

编辑:我刚用命令手动加密文件

openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00
Run Code Online (Sandbox Code Playgroud)

它增长了8个字节:O.我仍然不知道他们来自哪里,但我不认为我的程序中的一般错误是由此引起的.

整个问题的背景是我大学的信息安全课程.我们使用不同的算法得到了类似的任务,但即使是成功完成程序的人也无法弄清楚程序中的问题所在.

可以为您发布我的整个程序吗?

c openssl

6
推荐指数
1
解决办法
1487
查看次数

如何根据elasticsearch中的查询词数计算得分?

我希望查询返回一个计算得分,如:

标题中每个查询词的出现+描述/查询词的数量

例如

EbSearch.add [ 
new_job( id: 1, title: "Java Programmierer", 
description: "Java Programmierer")
]

res = EbSearch.search("Java Programmierer").results.first.score.should == 4
Run Code Online (Sandbox Code Playgroud)

目前它输出8,因为它对每个术语进行查询并总结它.之后我可以分开,但我没有分析的查询条款,因此化合物可能会弄乱分数.

查询结构如下:

search = Tire.search index_name do
  query do 
    dis_max do 
       query { string query, fields: ['title^3', 'description.with_synonyms^0.5'], use_dis_max: false, default_operator: "OR" }  
       query { string query, fields: ['title^3', 'description.without_synonyms'], use_dis_max: false, default_operator: "OR"}
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题非常感谢.

编辑

我意识到我提供的背景不够.

以下是我已经制定的其他一些片段.我写了一个自定义的SimilarityProvider来禁用idf和规范化.https://gist.github.com/outsmartin/6114175

完整的轮胎代码可在https://gist.github.com/6114186找到.它比示例稍微复杂一点,但它应该是可以理解的.

elasticsearch tire

5
推荐指数
1
解决办法
575
查看次数

标签 统计

c ×1

elasticsearch ×1

openssl ×1

tire ×1