这个题目,我姑且这样叫吧,照例,我们先来分析一下需求。
比如有一个设置密码的功能,但用户希望能够自己选择密码的加密算法,如MD5、HMAC、SHA1等,然后程序会根据用户所选择的算法对密码进行加密并存入数据库,同时在配置文件中记录下用户的选择。
按照一般的思路,我们可能会做一个分支判断,如
呵呵,其实我们不必要这样做,来,先来看看MD5、HMAC、SHA1、SHA384等类有什么共同的特征?
1、都是通过调用Create静态方法来创建一个实例,当然,像MD5这些类都是抽象类,是不能被实例化的。其实,它们都返回一个名为“算法名CryptoServiceProvider”的类实例,如MD5CryptoServiceProvider、SHA1CryptoServiceProvider等,这些类都是对算法计算的具体实现。
2、都是通过调用ComputeHash方法计算哈希值的。
而且,这些类都是位于同一个命名空间下,因些,根据不同的算法进行加密,唯一不同的是类名,也就是说,我们的代码只写一次就可以了,把代码封装在一个方法中,通过在参数中传递类名。
能做到这种功夫的,也就用到反射了,通过反射动态动调用类成员来完成。
接着需要一个方法来把字节数组转为字符串。
然后,我们就可以在其它代码中使用了。
好了,现在可以运行一个试试。
分享到:
相关推荐
C语言实现DES算法DES加密算法实验报告.doc
密码学实验之流密码算法:里面包含A5算法与RC4算法加密流程和python代码实现附加运行结果。流密码是一种加密算法,它使用连续的密钥流来对数据进行加密。与块密码不同,流密码是逐位或逐字节地对数据进行加密和解密...
DES加密算法实现的C++类DES加密算法实现的C++类
QT 实现AES 加密算法
对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。在对称密码算法的发展历史中曾出现过多种优秀的算法,包括DES、3...
DES,DES加密算法,DES算法源码。用C写的DES加密算法。 DES,DES加密算法,DES算法源码。 DES加密算法(c语言实现) (本程序可以直接使用)
非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。Base64: 1.JDK实现 2.common codes实现 3.bouncy castle实现 三。消息摘要算法: 1.MD5 2.SHA 3.MAC 四。数字签名:JDK实现 1.RSA 2.DSA 3.ECDSA 五。对称加密算法: 1.3...
c语言编写的DH算法,借鉴学习 A系统构建密钥:构建一对公私密钥Private Key1和Public Key1; A系统向B系统公布自己的公钥(Public Key1); B系统使用A公布的公钥(Public Key1)建立一对密钥:Private Key2和...
结合C语言,实现高级数据加密算法AES(AES-128)。-AES algorithm mainly includes three aspects: round of changes, round number and key expansion. In this paper, 128 for example, introduce the basic ...
适合练手、课程设计、毕业设计的Java项目源码:基于Misty1算法的加密软件的实现(源代码+论文).rar 适合练手、课程设计、毕业设计的Java项目源码:基于Misty1算法的加密软件的实现(源代码+论文).rar 适合练手、课程...
主要介绍了使用java自带des加密算法实现文件加密和字符串加密的示例,需要的朋友可以参考下
本rsa算法是使用Java与javascript加密解密范例代码,该资料从互联网收集,加上了自己的使用体会,如果对你有帮助那是万幸! js加密部分
动态位算法加密技术动态位算法加密技术动态位算法加密技术
AES高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种...本软件是用java语言开发,实现了AES算法对文件的加密和解密,并在界面上加了进度条,来提示用户加密解密的进度。如果不足之处,欢迎留言。
DES加密解密算法的C语言实现,只要调用函数,即可实现数据的加密解密,我已经在DSP上实现。
ECC加密算法实现 源代码(上) ECC加密算法实现 源代码(上)
用C语言实现的AES加密解密算法,用C语言实现的AES加密解密算法
BGN是一种同态加密方案,是Boned D等人在2005提出的一种具有全同态性质的加密方案。和传统的仅能支持单同态的elgamal和paillier加密方案不一样,BGN能够同时支持加同态和一次乘同态运算。 BGN的实现我们主要使用JAVA...
基于C语言实现SM4加密算法图像加密应用源码.zip 基于C语言实现SM4加密算法图像加密应用源码.zip 基于C语言实现SM4加密算法图像加密应用源码.zip 开发语言:C语言 SM4加密算法应用 图像加密项目 带有可执行程序 开发...
主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了java RAS加密解密算法的相关实现技巧,需要的朋友可以参考下