重写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接口,项目代码结构如下:

image

     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.agileeas.net

官方博客:http://eastjade.cnblogs.com

github:https://github.com/agilelab/eas

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

转载于:https://www.cnblogs.com/eastjade/p/5640145.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的堆栈安全递归

在本文中&#xff0c;摘自《 Java中的函数式编程 》一书&#xff0c;我解释了如何使用递归&#xff0c;同时避免了StackOverflow异常的风险。 Corecursion正在使用第一步的输出作为下一步的输入来构成计算步骤。 递归是相同的操作&#xff0c;但是从最后一步开始。 在这种情况…

数字化经营支付3.0有哪些盈利机会

实体商户的现状 服务商经营现状 官方政策支持 微信平台通过多渠道助力商户发放 优惠券,如扫码领券、API领券、支 付有礼、附近3公里等形式,给商户 做引流拓客。

nessus重置密码

许久不用的nessus密码居然忘记了&#xff0c;查了下&#xff1a; cmd下进入到nessus的安装目录 提升为管理员&#xff0c;登录系统 如果想用之前的账号&#xff0c;可以直接在系统内重置密码。转载于:https://www.cnblogs.com/nayu/p/5640527.html

程序员有哪些可以写博客的网站?

俗话说&#xff1a;好记性不如烂笔头&#xff0c;作为一名合格的程序员还是抽时间写写博客的&#xff0c;马云曾说“成功的人有两个特质&#xff0c;一个是喜欢写作&#xff0c;一个是喜欢演讲”&#xff0c;我觉得吧&#xff0c;写作一是为了总结&#xff0c;二是督促自己成长…

工厂方法设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

jmx jolokia_使用Jolokia和JMX进行客户端服务器监视

jmx jolokiaJava监视工具的选择非常广泛&#xff08;由Google提供的随机选择和顺序&#xff09;&#xff1a; javamelody 压力探头 JVisualVM 控制台 贾蒙 Java JMX Nagios插件不适用 此外&#xff0c;还有各种专用工具&#xff0c;例如ActiveMQ &#xff0c; JBoss &…

利用 %20 替换 空格

将字符串中的空格都替换为 %20 &#xff08; 时间复杂度为O&#xff08;N&#xff09;的解法 &#xff09; void ReplaceBlankSpace(char* arr){if (arr){int count 0;int lenth strlen(arr);for (int i 0; i < lenth;i)if (arr[i] )count;char*before arrlenth, *beh…

Node.js 官方文档中文版

这目录也是醉了 。 列出跟没列出没两样 转载于:https://www.cnblogs.com/ganmk--jy/p/5646860.html

Smaug Coverage

转载于:https://www.cnblogs.com/edisonxiang/p/5650656.html

图谱(学习地图)系列总结,持续更新中

目录 1.2022年最新前端学习路线图 2.2022年最新大数据学习路线图 3.2022年最新javaEE学习路线图 4.2022年最新UI/UE学习路线图 5.2022年java学习路线指南 6.JavaScript学习总结&#xff08;思维导图篇&#xff09; 7.思维脑图——数据分析实战&#xff08;最新版&#…

ccxt k线数据_寻找相似的历史k线

有网友提问应该用什么样的数据库/数据结构/算法来计算某支股票的相似K线? 具体的问题描述是&#xff0c;假设给出某股某段行情K线&#xff08;单位/日&#xff09;&#xff0c;从任何其他股票历史中匹配出与之最为相似的某段历史K线&#xff0c;并给出相似度值&#xff08;单位…

k均值例子 数据挖掘_数据挖掘的技术有很多种,常用的数据挖掘技术就这13种...

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中&#xff0c;提取隐含在其中的、人们事先不知道的但又是潜在有用的信息和知识的过程。数据挖掘的任务是从数据集中发现模式&#xff0c;可以发现的模式有很多种&#xff0c;按功能可以分为两大类&#xff1a;预…

【TypeScript系列教程05】保留关键字

目录 TypeScript 保留关键字 TypeScript 保留关键字 TypeScript 保留关键字如下表所示&#xff1a;

中国剩余定理 互质与非互质版本

中国剩余定理互质版 设m1&#xff0c;m2&#xff0c;m3&#xff0c;...&#xff0c;mk是两两互素的正整数&#xff0c;即gcd(mi,mj)1&#xff0c;i!j&#xff0c;i,j1,2,3,...,k. 则同余方程组&#xff1a; x a1 (mod n1) x a2 (mod n2) ... x ak (mod nk) 模[n1,n2,...nk]有…

aix 的c库为什么都是静态库_卢卡库:若梅罗、莱万都在努力突破极限,为什么我不能做到呢...

直播吧12月8日讯 北京时间周四凌晨的欧冠小组赛末轮比赛&#xff0c;国米将在主场迎战顿涅茨克矿工。目前&#xff0c;蓝黑军团依然保留着些许出线希望。在这场比赛之前&#xff0c;国米射手卢卡库接受了《法国足球》的采访&#xff0c;他谈论了和孔蒂的关系、和劳塔罗的搭档以…

便携式不锈钢管道焊接机器人_304不锈钢管居然可以发黑?

大家好&#xff0c;我是圣联达不锈钢管材管件孙立成。今天有伙伴们问我&#xff0c;自己使用的304不锈钢管表面怎么发黑了。带着这个问题&#xff0c;今天我特意去梳理了有关304发黑的缘故及其解决方法。304不锈钢管实际上按照正常生产流程&#xff0c;好的304不锈钢管加工制做…

jrockit_Java堆空间– JRockit和IBM VM

jrockit本文将为您提供JRockit Java堆空间与HotSpot VM的概述。 它还将为您提供有关JRockit和HotSpot的Oracle未来计划的一些背景知识。 Oracle JRockit VM Java堆&#xff1a;2个不同的内存空间 -Java堆&#xff08;YoungGen和OldGen&#xff09; -本机内存空间&#xff08;…

检验例题_高考必考|化学工艺流程之物质的分离提纯及检验鉴别,轻松拿分

嗨&#xff0c;小器来喽&#xff01;今天给大家带来的资料依旧是化学的工艺流程的相关知识&#xff0c;因为小器知道在这部分内容中大家是很容易丢分的&#xff0c;都是基础知识不扎实的原因&#xff0c;所以给大家的资料都是从易到难的安排还有专属高考相关例题&#xff0c;简…

三态门三个状态vhdl_温故知新,高阻态和三态门

欢迎FPGA工程师加入官方微信技术群高阻态高阻态这是一个数字电路里常见的术语&#xff0c;指的是电路的一种输出状态&#xff0c;既不是高电平也不是低电平&#xff0c;如果高阻态再输入下一级电路的话&#xff0c;对下级电路无任何影响&#xff0c;和没接一样&#xff0c;如果…

口译员设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …