开源.NetCore通用工具库Xmtool使用连载
Posted 黎明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源.NetCore通用工具库Xmtool使用连载相关的知识,希望对你有一定的参考价值。
【Github源码】
《上一篇》详细介绍了Xmtool工具库中的加解密类库,今天我们继续为大家介绍其中的散列算法类库。
散列算法在某些特殊场景也可以当做加密方法使用;其特点是不可逆,同一内容每次散列值绝对一致,所以也可用作对数据内容是否被篡改的校验方法;或者其他需要唯一性编码的场景;本类库提供了MD5、SHA1、SHA256、SHA384、SHA512等常用散列算法。
类库方法对散列计算方法进行了简单封装,让用户可以一句话获得指定内容的散列值。
1. MD5散列算法
public string MD5(string text, string encoding = "utf-8")
说明:对传入的字符串进行MD5散列计算,并返回结算结果;编码格式默认为UTF8,可进行指定。
string md5Str = Xmtool.Hash().MD5("admin@123");
// TODO
2. SHA1散列算法
public string SHA1(string text, string encoding = "utf-8")
说明:对传入的字符串进行SHA1散列计算,并返回计算结果;编码格式默认为UTF8,可进行指定。
string sha1Str = Xmtool.Hash().SHA1("admin@123");
// TODO
3. SHA256散列算法
public string SHA256(string text, string encoding = "utf-8")
说明:对传入的字符串进行SHA256散列计算,并返回计算结果;编码格式默认为UTF8,可进行指定。
string sha256Str = Xmtool.Hash().SHA256("admin@123");
// TODO
4. SHA384散列算法
public string SHA384(string text, string encoding = "utf-8")
说明:对传入的字符串进行SHA384散列计算,并返回计算结果;编码格式默认为UTF8,可进行指定。
string sha384Str = Xmtool.Hash().SHA384("admin@123");
// TODO
5. SHA512散列算法
public string SHA512(string text, string encoding = "utf-8")
说明:对传入的字符串进行SHA512散列计算,并返回计算结果;编码格式默认为UTF8,可进行指定。
string sha512Str = Xmtool.Hash().SHA512("admin@123");
// TODO
【Github源码】
通用代码完成库/工具
【中文标题】通用代码完成库/工具【英文标题】:Generic code completion library/tool 【发布时间】:2012-09-01 19:56:50 【问题描述】:我正在尝试在我最喜欢的编辑器中设置正确的代码完成,我们称之为 AnEditor 以避免互联网上充斥着特定于程序的答案。 (而且语言是语言,你知道。)编辑器有两个我喜欢它的特性:它在控制台和 GUI 中工作得一样好,所以我可以通过网络使用它,而且它具有很大的可扩展性。所以我不愿意使用成熟的 IDE。但是编辑器没有可靠的代码完成功能,但如果我找到合适的解决方案可以插入它。
我已经在 Google 上搜索了一大堆关于“[editor/IDE Y] 中的“[language X] 补全”的问题和解决方案。似乎每个新的 IDE 都在从头开始为每种语言实现其代码完成,解析器等等。每个更简单的编辑器(包括 AnEditor)都会执行以下操作之一:
仅完成标准库函数名称, 或使用 ctags,它提供基于正则表达式的延迟“解析”(用于非 C 程序),并且不应该告诉您刚才输入的变量的类型,因此对于真正的代码完成不是很有用, 如果编辑器可以通过插件进行扩展,还有其他方法,但它们通常归结为上述或多或少的变态组合,以及大量自定义正则表达式。现在的问题是,为什么我们不能有一个健全的代码完成库,我可以将其插入 AnEditor 并让其他人插入 ABigIDE?据我所知(解密 C 指针丛林不是我的目标),答案应该是这样的:
yacc/lex/bison 风格的通用解析器(或静态分析器),以某种方式放松以容忍编写过程中的代码,能够理解 JavaDoc 风格的 cmets。而且速度快,最好是这样,它可以在飞行中使用 一个索引,可以告诉类的成员、方法的签名及其在文件中的位置(ctags 现在这样做)、返回值和来自 JavaDoc cmets 的其他文档 另一个知道变量类型的索引,以及一个根据当前正在编写的文件或代码中的位置告知类型的函数因此,要完成某些语言工作,您需要为该语言制定解析器规则,在标准库和您的项目上建立索引,调用类型识别函数并查找类的成员和文档。或者,如果您正在处理对象构造或静态调用,则只需列出类和成员。
如果 Eclipse、Netbeans 和 JetBrains 已经在 Java 中成功地做到了(所以我应该 plug Eclipse to AnEditor),为什么没有人能以一种不那么臃肿和更通用的方式来做呢?还是我错过了什么,未来已经潜伏在某个地方?
【问题讨论】:
您可能想查看ctags
。例如,请参阅Autocomplete libraries for Java, C, PHP?、Is there an alternative to ctags that works better?、How does Geany auto-completion work?、Autocompletion in Vim 和朋友。
【参考方案1】:
所以:到目前为止,几乎所有人都解决了这个确切的问题。 ‘Language servers’ provide a protocol to plug language-specific semantics-aware completion and other features to different editors and IDEs.
值得注意的是,“语言服务器”往往是用它们解析的相同语言开发的。在 Python 等速度较慢的语言中,这可能是一个值得怀疑的决定。
对于某些语言,类似的解决方案在一段时间内可用,独立于语言服务器 - 例如。 Tern for JS、Scion 和 ghc-mod 用于 Haskell 等。这些往往主要服务于 Emacs 和 Vim。可以预见,这样的解决方案主要出现在非主流语言上,就像所有编译成 JS 的语言一样——它们的出现似乎比为每个编辑器/IDE 开发单独的插件更快。
【讨论】:
以上是关于开源.NetCore通用工具库Xmtool使用连载的主要内容,如果未能解决你的问题,请参考以下文章
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Asp.net Core - 通用存储库模式 - 使用 TrimStart 搜索