重写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人

邮件:[email protected],[email protected],

电话:18629261335。

时间: 2024-10-10 09:19:39

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

基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器

一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的. AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC.ORM.SOA.分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体.数据模型设计生

Android Github和码云等托管平台的凭据,以及添加修改账号密码

Github和码云等托管平台的凭据 开始菜单 -> 控制面板 -> 用户账户和家庭安全 -> 凭据管理器 -> 如下图,可编辑可添加 ps:如果你修改了某个代码托管平台的密码,那么android studio 就不能拉取和上传代码了.需要重新验证,也就是修改凭据 GitHub打不开怎么办? //找到host文件夹(C:\Windows\System32\drivers\etc),用记事本打开,添加下面的地址: 192.30.253.112 github.com 192.30.253

对登录中账号密码进行加密之后再传输的爆破的思路和方式

一. 概述 渗透测试过程中遇到web登录的时候,现在很多场景账号密码都是经过js加密之后再请求发送(通过抓包可以看到加密信息)如图一burp抓到的包,request的post的登录包,很明显可以看到password参数的值是经过前端加密之后再进行传输的,遇到这种情况,普通发包的爆破脚本就很难爆破成功.鉴于这种情况,这边分析四种方式进行绕过加密爆破. 二. 方法和思路 1. 分析找出是哪个js文件进行了password参数值的加密,将该js导入本地动态执行,建一个小型的web服务器,利用浏览器页面

Tibco公司SOA集成平台简介

远行科技做为Tibco公司重要战略合作伙伴和实施商,现对tibco soa 中间件做一个简单介绍. TIBCO集成服务框架(TIBCO Integrated Service Framework,TISF)是基于分布式架构的消息总线技术,遵循SOA设计理念并在其之上提供各种标准及非标准协议支持,以达到简化服务开发.部署及管理并且能实现服务在异构环境的服务共享及服务重复使用. TIBCO集成服务框架具有开放性.可扩展性和高可实施性等特点,能充分支持企业SOA架构业务设计实施的需求.TISF是开放性平

VPS建站请注意账号密码安全防范!重要的事情说三遍!

料课上线一年之后,很多学员都希望能增加建站实操类课程.讲道理,这个要求还是很合理的.因为料课主要是教大家市场调查分析和主动开发客户的,而主动开发的前提是你要有个基本的网站进行展示.毕竟,外贸的商业合作跨越了国界,不同国家互不相识的买方和卖方,仅仅凭着网站和邮件,就建立了最初步的联系纽带和信任.网站不但是建立信任的桥梁,也是展示专业形象的窗口,其重要程度不言而喻. 于是在课程里,我增加了建站类的福利课程,可以说非常详细,完全手把手讲解实操!而且和其他用虚拟主机来建站甚至先本地建站的课程不同,料课里

收到陌生短信千万不要随意打开网址,小心窃取你的账号密码-速码云

文章来源:http://www.4006026717.com 我们收到任何短信后切勿随便打开短信内容里面的网址,点击短信里的链接后遭受财产损失,类似的事件经常看见媒体报道,短信有风险,打开需谨慎.我们都见识过***的网络手段有多高明,手机里的一条短信就能盗走你的账户.那么,面对一些发到手机上的"钓鱼网站",到底该如何辨别以防上当呢?有国外数据专家做了短信是如何盗取用户的账号信息的过程演示. 在以前,双因子验证方式是相对安全的保护措施因为,当你的账号密码被不法分子盗取了,用户还可以通过其

c#登录时保存账号密码到cookie

登陆界面有用户名.密码输入框,一个’记住账号密码‘的复选框. 1.登录时,勾选‘记住账号密码‘复选框,则会把用户名密码保存在客户端cookie里,保存时间为最大值(直到用户清除浏览器缓存或者取消勾选’记住账号密码‘复选框): 2.登录时,取消勾选‘记住账号密码‘复选框,会清除cookie保存的用户名密码. 3.登录时,当修改了用户名密码,会判断cookie保存的值是否与输入的相同,如果不同,则会修改cookie的值. 4.登录时,当勾选了‘记住账号密码‘复选框,下次打开登录界面,‘记住账号密码‘

最近开始努力学python 写了一个python小代码:判断一个登陆程序,如果账号密码输错3次,锁定账号无法再登陆

1 count = 0 2 username = 'zhangsan' 3 userpassword = '111111' 4 5 f = open('lock.txt','r+') 6 file_list = f.readlines() 7 f.close() 8 #打开文件夹 读取数据 9 10 name = input("请输入用户名:") 11 12 if name in file_list: 13 print("您的账号被锁定!") 14 #判断文件夹中的

如何查看Chrome浏览器保存的账号密码?

最近使用了chrome自动生成的密码,一时着急怎么也想不起来,就想到Chrome中保存了密码,怎样从Chrome浏览器中查看到已经保存的密码呢,下面就来看一看.某种意义上上,查看Chrome的密码比查看IE的更简单,因为查看IE密码还需要借助第三方工具,而查看CHrome密码只需一段简单的代码就行-- 查看Chrome密码只需一段代码 在Chrome浏览器的地址栏里输入" chrome://chrome/settings/passwords ",然后Chrome自动帮你保存的密码就会瞬