net加解密-.NET 通用加解密组件,扩展性讨论

问题描述

.NET 通用加解密组件,扩展性讨论

///
/// 加解密抽象类
///
public abstract class DEncrypt
{
protected byte[] sKey = { 12, 23, 45 };
protected byte[] sIV = { 12, 23, 45 };

    public void SetKeyIV(byte[] key, byte[] iv)
    {
        sKey = key;
        sIV = iv;
    }
    public abstract string Encrypt(string word);
    public abstract string Decrypt(string word);
}

///
/// 第一种加解密方式(RSAD)
///
public class New1Encry : DEncrypt
{
public override string Decrypt(string word)
{
//可以使用base.sKey base.sIV
return null;
}
public override string Encrypt(string word)
{
//可以使用base.sKey base.sIV
return null;
}
}

/// <summary>
/// 第二种加解密方式(AES)
/// </summary>
public class New2Encry : DEncrypt
{
    public override string Decrypt(string word)
    {
        //可以使用base.sKey   base.sIV
        return null;
    }
    public override string Encrypt(string word)
    {
        //可以使用base.sKey   base.sIV
        return null;
    }
}

代码如上:
本打算采用接口,但考虑到有key和IV,故使用抽象类
个人观点:
调用的时候
New1Encry aes = new New1Encry();
aes.SetKeyIV(null, null);
aes.Encrypt("...");
aes.Decrypt("....");
在抽象类中默认给sKey和sIV赋值,使用的时候也可以调用SetKeyIV(null,null)方法自定义Key和IV,也可以使用抽象类中默认的值,扩展新的加密方式的时候之类可直接访问基类的sKey和sIV

此种方式有何不合理处,还望大家多多指教.

代码仅用于交流思想.

时间: 2024-09-14 13:37:45

net加解密-.NET 通用加解密组件,扩展性讨论的相关文章

PHP实现支持加盐的图片加密解密_php技巧

一个简单的图片加解密函数,使用client跑,不要使用浏览器跑 话不多说,直接上代码 <?php /** * Created by hello. * User: qq 845875470 * Date: 2016/4/2 * Time: 11:21 */ $notice = <<<A 为了稳定性,必须在客户端跑 格式 :php path=D:/xxx/uuu type=en is_copy=1 salt=xxx 参数使用空格分开 path -- 路径 必须写 type -- en加

C#/IOS/Android通用加密解密方法

原文:C#/IOS/Android通用加密解密方法 公司在做移动端ios/android,服务器提供接口使用的.net,用到加密解密这一块,也在网上找了一些方法,有些是.net加密了android解密不了,或者反之.下面的是三个平台都可以加密解密的方法.加密解密中用到的key="1234578";在调取方法时传值即可. C#代码 #region 跨平台加解密(c#) /// <summary> /// 对字符串进行DES加密 /// </summary> ///

动态加载用户控件的组件!(二)

动态|加载|控件 上一篇文章写到了动态加载用户组件的组件. 但是怎样灵活的在项目中运用呢?怎样做到面向组件的开发呢?就像是积木式开发,我们的叶面可以有不同的组件来完成,而整个叶面就是一个容器,我们只不过是往容器里添加不同的元素而已,因此只要我们的元素能够做到通用,一般化,那么元素积累到了一定的程度,元素足够的丰富就可以经而一举构造出我们想要得叶面. 更多地运用到下一篇文章再详细到来.下面我们先来看看怎么样加载组合我们的用户组件: 1.让我们来先做两个元素,这里我就把用户组件ascx的文件称之为元

使用Donetbar控件,出现“设计器加载程序未提供根组件 但没有指出原因”错误如何解决

问题描述 使用Donetbar控件,出现"设计器加载程序未提供根组件 但没有指出原因"错误如何解决 使用donetbar控件搭建winform窗体应用程序,在用到SuperTabControl的SelectedTabChanged方法时,只要后台代码有改动,设计界面就会变成空白,去掉这个方法就正常,请问这是什么问题,如何解决? 解决方案 应该是你的dotnetbar是破解的或者版本和你用的.net框架不匹配造成的.

动态加载用户控件的组件

动态|加载|控件 动态加载用户控件的组件!(终结MasterPages技术) 让我们来做个页面模版吧!有了模版是不是就可以统一了呢!Sure ! 比如:模版页Template.ascx中我们留出中间一个部分,或者你想要留出的一个空间,让以后放入你想要的内容. 好了!那么在我们的页面index.aspx上我们就可以引用这个Template.ascx,然后在空出的部分放入我们特别的东西,当然最好是在空的地方我们插入另外一个页面如:List.ascx, 当然我们在做个页面MyArchive.aspx.

已经生成的input标签,还能加jquery的class属性生成组件么?

问题描述 已经生成的input标签,还能加jquery的class属性生成组件么? 如题: $('#id').addClass('toggle'); 解决方案 可以啊 ,注意生成顺序就行了 解决方案二: 一般动态加载的需要在DOM ready前增加,不要放到DOM ready后,要不无法初始化组件,应为组件会在自身代码中注册过dom ready事件先于你的注册dom ready执行,如果easyUI的组件,你需要添加样式后手动调用一次组件的api代码进行初始化

javascript图片懒加载与预加载的分析

   预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染.  两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载.懒加载对服务器前端有一定的缓解压力作用,预加载则会增加服务器前端压力.  懒加载的意义及实现方式有:    意义: 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数.    实现方式:       1.第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟.     2.第二种是条件加载,符合某些条件,或触发

通用社区登陆组件技术分享(开源)下篇:OAuth 源码下载及原理解说

上节内容: 1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍 2:通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法   本节内容: 1:简述组件设计的过程及思路及部分重点源码讲解 2:源码下载 3:扩展机制说明  附源码截图:等会看以下思路时,可以对照着看:   一:简述组件设计的过程及思路   1:为什么想到弄成组件? 当重复的代码或相似的事件>=2个时,我都会想一下,是否还可能有第3个,第4个相近的,如果有,就会统一处理,组件就是设计的再通用一些

通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法

上节内容:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍   本节包括以下内容: 1:第三方社区账号登陆的授权流程 2:OAuth2 组件的下载及web.config配置 3:OAuth2 组件的5行代码编写流程 4 :总结与下节内容预告     一: 第三方社区账号登陆的授权流程 1:首先从这里开始:用户进入登陆界面   2:用户点击用新浪微博或QQ登陆,系统跳到第三方授权页面,(QQ示例授权界面) 3:确定授权后,第三方跳转返回你的回调页(在应用里设置),通常仍是系统登陆页面