重写AgileEAS.NET SOA 中间件平台账号密码的加密算法
一、平臺(tái)簡介
???? AgileEAS.NET SOA 中間件平臺(tái)是一款基于基于敏捷并行開發(fā)思想和Microsoft .Net構(gòu)件(組件)開發(fā)技術(shù)而構(gòu)建的一個(gè)快速開發(fā)應(yīng)用平臺(tái)。用于幫助中小型軟件企業(yè)建立一條適合市場快速變化的開發(fā)團(tuán)隊(duì),以達(dá)到節(jié)省開發(fā)成本、縮短開發(fā)時(shí)間,快速適應(yīng)市場變化的目的。
???? AgileEAS.NET SOA中間件平臺(tái)提供了敏捷快速開發(fā)軟件工程的最佳實(shí)踐,通過提供大量的基礎(chǔ)支撐功能如IOC、ORM、SOA、分布式體系及敏捷并發(fā)開發(fā)方法所支撐的插件開發(fā)體系,以及提供了大量的實(shí)體、數(shù)據(jù)模型設(shè)計(jì)生成工具、代碼生成工具,用于幫助中小軟件開發(fā)商快速成長。
???? AgileEAS.NET平臺(tái)充分把握目前軟件行業(yè)快速發(fā)展的新趨勢,基于敏捷并行開發(fā)、快速適應(yīng)市場這樣淳樸的軟件工程實(shí)踐,采用業(yè)界廣泛使用的Microsoft .Net構(gòu)件(組件)開發(fā)技術(shù)實(shí)踐了這種開發(fā)思想,幫助軟件企業(yè)實(shí)現(xiàn)“敏捷變化、快速適合”的目標(biāo),從而幫助軟件企業(yè)在激烈的市場競爭中贏得先機(jī)并獲得更高的回報(bào)。
二、賬號加密、驗(yàn)證算法的替換
????? AgileEAS.NET SOA 中間件平臺(tái)一直使用內(nèi)置的密碼加密算法,隨著很多使用者提出,為了系統(tǒng)的安全需要,希望能提供一策略,用自己的加密算法算法替換AgileEAS.NET SOA 中間件平臺(tái)內(nèi)置的密碼加密算法。
???? 為了實(shí)現(xiàn)這種需求,我們定義了密碼提供者接口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>/// 驗(yàn)證給定的密碼是否和指定的密鑰匹配。/// </summary>/// <param name="password">要驗(yàn)證的密碼。</param>/// <param name="key">要驗(yàn)證的密鑰。密鑰的長度為64個(gè)字節(jié)。</param>/// <returns>如果可以通過指定的密鑰生成和key相匹配的密鑰,則返回true;否則返回false。</returns>bool Verify(string password, byte[] key);} }???? IPasswordProvider接口之中定義一個(gè)兩個(gè)方法,Encrypt方法用于生成密碼對應(yīng)的加算后的密碼,Verify方法用于對明文密碼和加密后的密碼進(jìn)行比對。
三、實(shí)現(xiàn)和配置
??? 下面我就以某一個(gè)朋友的實(shí)現(xiàn)為例,他想把密碼加密算法換成md5,咱們來看看具體的做法。
???? 首先要建一個(gè)類庫項(xiàng)目,并且引用EAS.Explorer、EAS.MicroKernel、EAS.Explorer程序集,建立一個(gè)類并實(shí)現(xiàn)IPasswordProvider接口,項(xiàng)目代碼結(jié)構(gòu)如下:
???? 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,然后修改相關(guān)的配置文件,如EAS.SOA.Server.exe.config、Web.Config,加入如下配置:
<!--密碼算法--><object name="PasswordProvider" assembly="My.Passwords" type="My.Passwords.MD5Password" LifestyleType="Singleton" />???? 結(jié)束配置。
四、例子代碼下載
???? 本文涉及的領(lǐng)域模型設(shè)計(jì)器代碼插件例子,源代碼已經(jīng)一并放在了AgileEAS.NET SOA 中間件的最新版之中,請大請通過AgileEAS.NET SOA 中間件平臺(tái)官方網(wǎng)站下載,或者通過以下方式下載:
???? 直接下載: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 中間件平臺(tái)管理員:Administrator,登錄密碼sa。
???? 直接下載的壓縮包可能會(huì)有一定的時(shí)間差,即有可能不一定是最新版本,建議大家都通過SVN下載最新版本。
五、聯(lián)系我們
???? 為了完善、改進(jìn)和推廣AgileEAS.NET而成立了敏捷軟件工程實(shí)驗(yàn)室,是一家研究、推廣和發(fā)展新技術(shù),并致力于提供具有自主知識(shí)產(chǎn)權(quán)的業(yè)務(wù)基礎(chǔ)平臺(tái)軟件,以及基于業(yè)務(wù)基礎(chǔ)平臺(tái)了開發(fā)的管理軟件的專業(yè)軟件提供商。主要業(yè)務(wù)是為客戶提供軟件企業(yè)研發(fā)管理解決方案、企業(yè)管理軟件開發(fā),以及相關(guān)的技術(shù)支持,管理及技術(shù)咨詢與培訓(xùn)業(yè)務(wù)。
???? AgileEAS.NET平臺(tái)自2004年秋呱呱落地一來,我就一直在逐步完善和改進(jìn),也被應(yīng)用于保險(xiǎn)、醫(yī)療、電子商務(wù)、房地產(chǎn)、鐵路、教育等多個(gè)應(yīng)用,但一直都是以我個(gè)人在推廣,2010年因?yàn)槲肄o職休息,我就想到把AgileEAS.NET推向市場,讓更多的人使用。
???? 技術(shù)團(tuán)隊(duì)成員都是合作多年的老朋友,因?yàn)檫@個(gè)平臺(tái)是免費(fèi)的,我們的營運(yùn)開支主要靠為客戶提供咨詢服務(wù)所得,我們都是因?yàn)槌绦騿T的那種理想與信念堅(jiān)持,在此我感謝一起奮斗的朋友和一直支持我們工作的客戶、朋友。
團(tuán)隊(duì)網(wǎng)站:http://www.agilelab.cn,
AgileEAS.NET網(wǎng)站:http://www.smarteas.net
官方博客:http://eastjade.cnblogs.com
QQ:47920381
AgileEAS.NET QQ群:
113723486(AgileEAS SOA 平臺(tái))/上限2000人
199463175(AgileEAS SOA 交流)/上限2000人
116773358(AgileEAS.NET SOA 平臺(tái))/上限2000人
郵件:james@agilelab.cn,mail.james@qq.com,
電話:18629261335。
?
我的博客即將搬運(yùn)同步至騰訊云+社區(qū),邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的重写AgileEAS.NET SOA 中间件平台账号密码的加密算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看Linux系统架构类型的5条常用命令
- 下一篇: Stimulsoft Reports.N