首页 文章 精选 留言 我的

精选列表

搜索[Rust重写],共8999篇文章
优秀的个人博客,低调大师

Go 1.27 发布:泛型方法来了,JSON 包重写,还内置了 UUID 和 SIMD

Go 1.27 今天正式发布。这个版本最大的亮点是泛型方法(Generic Methods)——期待已久的语言特性终于落地。 泛型方法允许方法声明自己的类型参数,这意味着你可以为特定类型的方法添加泛型约束而不影响整个类型。不过接口方法不能声明类型参数,泛型方法也不能满足接口方法的要求。 标准库方面,改动最大的当属 encoding/json/v2。新版 JSON 包默认更严格:拒绝无效的 UTF-8、拒绝 JSON 对象中的重复键名。最重要的是,原来的 encoding/json 底层已经切换到了 v2 实现,unmarshal 性能显著提升。如果你需要旧行为,可以设置 GOEXPERIMENT=nojsonv2 回退。 另一个让人意外的变化是 uuid 被纳入了标准库。开发者终于不用再为 UUID 生成引入第三方依赖了。同样新增的 crypto/mldsa 包实现了后量子签名方案 ML-DSA(FIPS 204),crypto/x509 和 crypto/tls 都已经支持。 实验性 SIMD 支持也值得关注。新的 simd 包提供了跨架构的 SIMD 抽象,通过 GOEXPERIMENT=simd 启用。simd/archsimd 子包支持 arm64 Neon 和 WebAssembly 128 位 SIMD。 运行时方面,小对象内存分配(80 字节以下)成本降低了最多 30%——这对高频分配场景是个实打实的提升。Goroutine 泄漏检测(goroutineleak 分析器)从实验性功能正式毕业,利用 GC 可达性分析来检测无法被唤醒的阻塞 goroutine。 工具链也有一些顺手的小改进:go test 默认启用 stdversion vet 检查,防止引用比模块版本声明更晚的标准库符号;go mod tidy 自动合并重复的 require 块;go doc 支持 package@version 语法。 参考来源: Go 1.27 Release Notes

优秀的个人博客,低调大师

重写AgileEAS.NET SOA 中间件平台账号密码的加密算法

一、平台简介 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。 AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。 AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。 二、账号加密、验证算法的替换 AgileEAS.NET SOA 中间件平台一直使用内置的密码加密算法,随着很多使用者提出,为了系统的安全需要,希望能提供一策略,用自己的加密算法算法替换AgileEAS.NET SOA 中间件平台内置的密码加密算法。 为了实现这种需求,我们定义了密码提供者接口IPasswordProvider: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EAS.Explorer { /// <summary> /// 用户密码提供者接口。 /// </summary> public interface IPasswordProvider { /// <summary> /// 加密指定的密码。 /// </summary> /// <param name="password">要加密的密码。</param> ///<returns>加载后的密码。</returns> byte[] Encrypt(string password); /// <summary> /// 验证给定的密码是否和指定的密钥匹配。 /// </summary> /// <param name="password">要验证的密码。</param> /// <param name="key">要验证的密钥。密钥的长度为64个字节。</param> /// <returns>如果可以通过指定的密钥生成和key相匹配的密钥,则返回true;否则返回false。</returns> bool Verify(string password, byte[] key); } } IPasswordProvider接口之中定义一个两个方法,Encrypt方法用于生成密码对应的加算后的密码,Verify方法用于对明文密码和加密后的密码进行比对。 三、实现和配置 下面我就以某一个朋友的实现为例,他想把密码加密算法换成md5,咱们来看看具体的做法。 首先要建一个类库项目,并且引用EAS.Explorer、EAS.MicroKernel、EAS.Explorer程序集,建立一个类并实现IPasswordProvider接口,项目代码结构如下: MD5Password代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using EAS.Explorer; using System.Security.Cryptography; using System.Text; using System.IO; using System.Text; namespace My.Passwords { public class MD5Password : IPasswordProvider { #region IPasswordProvider 成员 public byte[] Encrypt(string password) { byte[] result = Encoding.Default.GetBytes(password.Trim()); MD5 md5 = new MD5CryptoServiceProvider(); byte[] output = md5.ComputeHash(result); byte[] buffer = new byte[64]; Buffer.BlockCopy(output, 0, buffer, 0, 16); return buffer; } public bool Verify(string password, byte[] key) { byte[] result = Encoding.Default.GetBytes(password.Trim()); MD5 md5 = new MD5CryptoServiceProvider(); byte[] output = md5.ComputeHash(result); byte[] buffer = new byte[64]; Buffer.BlockCopy(output, 0, buffer, 0, 16); return EAS.Security.Bytes.Equals(buffer, key); } #endregion } } 编译代码得到My.Passwords.dll,然后修改相关的配置文件,如EAS.SOA.Server.exe.config、Web.Config,加入如下配置: <!--密码算法--> <object name="PasswordProvider" assembly="My.Passwords" type="My.Passwords.MD5Password" LifestyleType="Singleton" /> 结束配置。 四、例子代码下载 本文涉及的领域模型设计器代码插件例子,源代码已经一并放在了AgileEAS.NET SOA 中间件的最新版之中,请大请通过AgileEAS.NET SOA 中间件平台官方网站下载,或者通过以下方式下载: 直接下载:AgileEAS.NET SOA 5.2 下载,http://112.74.66.105/downloads/eas/agileeas.net.5.rar。 SVN更新:https://112.74.66.105/svn/eas/5.0,登录用户:eas,密码eas. AgileEAS.NET SOA 中间件平台管理员:Administrator,登录密码sa。 直接下载的压缩包可能会有一定的时间差,即有可能不一定是最新版本,建议大家都通过SVN下载最新版本。 五、联系我们 为了完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台了开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。 AgileEAS.NET平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。 技术团队成员都是合作多年的老朋友,因为这个平台是免费的,我们的营运开支主要靠为客户提供咨询服务所得,我们都是因为程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友和一直支持我们工作的客户、朋友。 团队网站:http://www.agilelab.cn, AgileEAS.NET网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com QQ:47920381 AgileEAS.NET QQ群: 113723486(AgileEAS SOA 平台)/上限2000人 199463175(AgileEAS SOA 交流)/上限2000人 116773358(AgileEAS.NET SOA 平台)/上限2000人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。 我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan 本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/p/5640145.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册