小贩卑微下跪,城管应该惶恐唱吧嘉年华全解析 音乐节模式开启山寨信用黑名单就是私设“刑堂”一路捞见P2P大潮汹涌 法律困境如影随形
首页
专栏
新闻
专题
疾病百科医院偏方查疾病
保健药品急救自测中医
两性性爱生理书刊时尚育儿性病防治生育避孕文学园地幽默
两性文化男性女性同性图文青春驿站美体健身化妆美容饮食
搜索论坛
图文百科
您现在所在的位置:首页 > 专题专栏 > 性爱姿势大全 >  列表
专题推荐
栏目热图

在.NetCore中使用Myrmec检测文件真实格式

正文字体:
日期:2019-03-23 04:48:48 来源:广州日报

听了这名主官的话后,周钰三人已经哈哈大笑起来,就连叶扬也是皱了皱眉头,努力让自己不要笑出来。

你敢不敢把手机借给陌生人?

“你们就像是老鼠一样令人讨厌,我们家乡抓住老鼠之后都是要将他们进行烧烤的,这样才能以泄心头之恨,今曰你们也就得到这样的报应吧”叶扬话音刚落,便是给这四人每人一掌,然后他便转身离开了。
可是下一刻,房间内忽然传来一阵凉意,紧接着一只温热的大手,便钻进了被子里,抓到了她。

“他只有一个人,我们有那么多个人,就不信拼不过赢。“雷影率先使用类似八门遁甲的秘术,他的身体强大,就算使用八门遁甲也完全能开到六门,只不过他的术不是八门遁甲,不过原理都是一样,短时间内让实力暴涨,而其他人也是如此。

在.NetCore中使用Myrmec检测文件真实格式


Myrmec 是什么?

Myrmec 是一个用于检测文件格式的库,Myrmec不同于其它库或者手写检测代码,Myrmec不依赖文件扩展名(在实际使用中,你的用户很可能使用虚假的扩展名欺骗你的应用程序),Myrmec会检测文件的二进制头,并在其元数据库中匹配来获得文件的格式。

例如Jpg图片的二进制头是 "FF D8 FF DB" 那么Myrmec会匹配到这个文件头,并获得两个结果--"jpg"和"jpeg"。

如何使用

首先安装 nuget 包

 Install-Package Myrmec

或者通过 DotnetCli

 dotnet add package Myrmec 

编写匹配代码

 1 // 创建嗅探器
 2 Sniffer sniffer = new Sniffer();
 3 
 4 // 使用元数据填充嗅探器
 5 sniffer.Populate(FileTypes.CommonFileTypes);
 6 
 7 // 获取要匹配文件的文件头,一般20个字节就够了,有的格式可能需要更长
 8 byte[] fileHead = ReadFileHead();
 9 
10 // 匹配并获取结果
11 List<string> results = sniffer.Match(fileHead)

为什么结果是List<String>?

许多时候一个文件格式会对应多个扩展名,比如jpg。还有的时候多种文件格式都是一种文件格式,比如 zip、apk、pptx 它们都是zip achive ,所以当你匹配了一个zip文件,那么你最少会获得3个扩展名。当结果是空时,说明没有匹配到结果。

 

查询多个结果或者一个

会有这样的情况:文件格式A 的文件头是 "ff,11,22" ,文件格式B 的 文件头是“ff,11,22,33”,这时候你要匹配的文件头是"ff,11,22,33,44",那么它最多会匹配到这两个结果,并返回他们包含的所有扩展名

1 // 这会在匹配到第一个结果时就返回
2 // default is false
3 List<string> results = sniffer.Match(fileHead,false);
4 
5 // 这会匹配到所有的结果
6 List<string> results = sniffer.Match(fileHead,true);

添加自定义的文件头

也许你创建了一种文件格式,或者你所使用的文件格式不在元数据中,这时你可以使用下面的代码将其加入元数据:

1 var data = new byte[]
2 {
3     0x11,
4     0x22,
5     0x33
6 };
7 sniffer.Add(data, new[] { "what", "file", "type" });

注意这个新添加的格式拥有3个扩展名。

获取MimeType

1 List<string> result = sniffer.Match(head);
2 string mimeType = MimeTypes.GetMimeType(result.First());

 

或者

1 string mimeType = MimeTypes.GetMimeType("png");

 

在下一个版本中,获取MimeType将会被替换成string 的扩展方法。

 

元数据来源

元数据来自维基百科 List of file signatures.

RoadMap

接下来要做的事就是支持 带有偏移量的 文件格式,例如

 ff,11,ff 起始偏移10字节

以及  11,ff,??,??,??,11,??,fd 这种含有跳跃的文件格式。

不过事实上他们两个是一种形式,预计下一个版本就会发布对其的支持。

支持 .net standard.现在是.net core 2,在未来会调整到.net standard

github地址:https://github.com/rocketRobin/myrmec

nuget地址:https://www.nuget.org/packages/Myrmec/

欢迎大家试用,提出意见与建议

 

为什么github仓库是英文的?

作为一个中文开发者,我没有在github仓库中使用中文,因为我希望能够长久的开发这个项目,并希望世界各地的开发者都能使用这个库,或者参与开发,为了此目的,我在github上使用的是英文。

当前文章:http://www.nbamk.com/7mra8.html

发布时间:2019-03-23 17:02:24

胤然体歌词 - 黄胤然首倡文创新理念 穿礼服的机会 总得有点真东西 家居风水好,财运滚滚来(家居风水简单学) 那年summer我们毕业了 2011成长营:家长反馈 专访诺心创始人张岚:安心美味的蛋糕故事 2011成长营:参加国际大赛的经历

出卖女人的是它们 宝宝皮肤过敏怎么办 女神来了 为了我,婆婆要和老公断绝关系 信手涂鸦泄露内心秘密 赤子孤独了,会创造一个世界——纪念傅雷夫妇 面对灾难,让我们紧急行动起来,预防心理创伤! 南昌购房夫妻双方落户详细程序和材料 妈妈要重视,宝宝打呼噜,不是睡得香! 可以慢,但不能停 17道题自测心理健康 罗李华:双鱼座2016年运势 处世哲学名言 【现代诗歌】趁 新时代的养育观——你知道么? 真有人格分裂吗? 冬季放生龟鳖类要考虑的注意事项 护肤必备手册之(二)周期护理 五只猴子的故事

编辑:帝华北

相关文章
发表评论
  • 还没有评论,沙发等你来抢

多说

最新新闻
热门文章
热门图文
网站推荐
Copyright ? 2004-2015 Jttop.com Inc. All rights reserved. 景天阁 健康资讯[景天阁两性天地] 版权所有
合作联系QQ:550036 Email:jttop@163.com 中国电信提供网络带宽 沪ICP备14001801号
本站所供内容仅供参考,不可替代医生意见,请谨慎使用部分部分内容来自网络,本站转载仅为传播信息,如有转载或引用文章涉及版权问题,或侵犯了您的权益,请及时与我们联系,我们将在收到通知后撤销该部分内容。