*
* @(#)Encrypter.java
*
*
*
*
* All rights reserved.
*
* *
*
* 功能描述:
* 公用方法描述:
*
* 修改人:
* 修改日期:
* 修改原因:
*
*/
import java.security.MessageDigest;
import java.security.Security;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/** *//**
* <p>
* 加密类,里面封装的是MD5的处理机制 <br>
*
* @author
* @since */
public class Encrypter
...{
private static String DEFAULT_JCE = "com.sun.crypto.provider.SunJCE";
private static String IBM_JCE = "com.ibm.crypto.provider.IBMJCE";
protected static final Log log = LogFactory.getLog(Encrypter.class);
/** *//**
* 初始化系统加密算法提供者
*/
static
...{
try
...{
Security.addProvider((Provider)Class.forName(DEFAULT_JCE).newInstance());
}
catch (Exception e)
...{
log.info(e);
try
...{
Security.addProvider((Provider)Class.forName(IBM_JCE).newInstance());
}
catch (Exception ex)
...{
log.info(ex);
}
}
}
/** *//**
* get hex string
*
* @param x
* @return
*/
private static String hexDigit(byte x)
...{
StringBuffer sb = new StringBuffer();
char c;
// First nibble
c = (char) ((x >> 4) & 0xf);
if (c > 9)
...{
c = (char) ((c - 10) + 'a');
}
else
...{
c = (char) (c + '0');
}
sb.append(c);
// Second nibble
c = (char) (x & 0xf);
if (c > 9)
...{
c = (char) ((c - 10) + 'a');
}
else
...{
c = (char) (c + '0');
}
sb.append(c);
return sb.toString();
}
/** *//**
* 加密
*
* @param content
* 加密内容
* @return 加密串
*/
public static String encrypt(String content)
...{
try
...{
MessageDigest algorithm = null;
algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
if (content != null)
...{
algorithm.reset();
algorithm.update(content.getBytes());
byte digest[] = algorithm.digest();
StringBuffer hexString = new StringBuffer();
int digestLength = digest.length;
for (int i = 0; i < digestLength; i++)
...{
hexString.append(hexDigit(digest[i]));
hexString.append(" ");
}
return hexString.toString();
}
else
...{
return "";
}
}
catch (NoSuchAlgorithmException ex)
...{
//加密过程中出现异常,采用原始的的内容串
return content;
}
}
public static void main(String[] args)...{
System.out.println("//" + Encrypter.encrypt("123") + "//");
}
}
登录Action
//获取用户名,密码
String userName = request.getParameter("username");
String passWord = Encrypter.encrypt(request
.getParameter("password"));
分享到:
相关推荐
总的来说,这个压缩包提供了一个完整的MD5加密算法实现,对于学习C++编程、理解MD5算法以及掌握DLL的创建和使用都是宝贵的资源。你可以通过分析和修改这些源代码,进一步提升自己的编程技能和对加密算法的理解。
在初始化阶段,MD5会设置一个128位的初始值;数据处理阶段,将输入数据分块处理,每个块512位,通过一系列的数学运算(如异或、加法、循环左移等)更新内部状态;结果填充确保输入数据长度为512位的整数倍;最后,...
3. **代码实现**:在C++中,你可以创建一个类来封装MD5的操作,包括初始化、更新数据、最终化和获取哈希值等步骤。例如,初始化MD5上下文,使用`MD5_Init()`;添加数据,使用`MD5_Update()`;完成计算,使用`MD5_...
`md5c.c`可能是一个简化的C语言版本的MD5实现,而`md5class.cpp`则可能是将MD5算法封装成C++类的代码。C++类提供了一种封装和抽象的方法,使得MD5计算更加易于使用和理解。 `md5class.h`是MD5类的头文件,它定义了...
例如,可能有一个`MD5`类,其中包含一个`hash`方法,接收一个字符串参数,返回该字符串的MD5摘要。 ```actionscript import com.flexMD5.MD5; var str: String = "Hello, World!"; var md5Hash: String = MD5.hash...
综上所述,"C# 加密解密2种方式"项目结合了C#的TripleDES和MD5加密技术,以及DLL库和WinForms应用程序的设计,为开发者提供了一个实用的加密解密工具。通过此项目,开发者可以学习到如何在C#环境中实现数据的加密和...
上述代码展示了如何将一个字符串转换为MD5哈希值。 RSA则是一种非对称加密算法,它的特点是有一对公钥和私钥。公钥可以公开,用于加密数据;私钥必须保密,用于解密数据。这使得RSA在数据传输、数字签名等方面非常...
在C#中,我们可以通过System.Security.Cryptography.MD5类来计算一个数据的MD5哈希值。MD5的主要用途是验证数据的完整性和一致性,而不是用于加密,因为其存在安全性问题,容易遭受碰撞攻击。 在这个程序中,"md5...
这些代码会展示如何在各自的环境中初始化加密对象、生成密钥、执行加密和解密操作,并可能包含如何在两个平台之间交换加密数据的步骤。 10. **测试与调试**: 实现后,务必进行详尽的测试,确保在所有可能的输入...
wrap加密方式是Oracle提供的一种数据保护方法,它使用一个密钥对其他敏感数据进行封装或“打包”。wrap技术可以保护如PL/SQL代码和数据库凭据等数据的完整性。当使用wrap技术时,可以采用一个密钥对数据进行加密,...
MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,用于生成固定长度的数字摘要,而DLL(Dynamic Link Library)是Windows操作系统中的共享库文件,用于封装特定功能供其他程序调用。ASE(Advanced ...
`MD5Encrypt`类可能提供了MD5加密和解密功能,常见的应用场景包括密码存储、文件校验等。这个类可能包含`GetMD5Hash()`方法用于计算输入字符串的MD5值,或者`VerifyMD5()`方法用于验证数据的完整性和原始性。 5. **...
以上代码中,`UserLoginRequest`是封装了用户名和密码的类,`userRepository`是用于操作数据库的Repository,`passwordEncoder`是用于密码验证的编码器,`UsernamePasswordAuthenticationToken`是Spring Security中...
在这个场景中,密码先经过MD5加密,然后与共享值(sharevalue)进行进一步的哈希运算,以增加密码的安全性。这是常见的密码加密方式,防止在网络传输中明文暴露。 3. **HTML解析与BeautifulSoup**: - `...
4. **MD5加密工具类**:MD5是一种常用的密码学哈希函数,用于安全存储密码。`MD5Util`通常提供计算字符串的MD5值,确保数据安全性。 5. **获取绝对路径工具类**:在处理文件路径时,工具类可能提供了获取相对路径的...
在给定的代码片段中,`Coder`类封装了这些功能,提供了一站式的加密解密服务。 在实际应用中,我们需要根据安全需求选择合适的算法。对于敏感数据,应优先考虑使用非对称加密和强哈希算法,同时结合证书和密钥管理...
9. PagesBean.class:这可能是一个通用的页面数据封装类,用于在多个页面间共享数据或者存储一些全局信息。 通过这个项目,学生可以学习到如何构建基于Java Servlet和JSP的Web应用,理解MVC架构,以及如何使用...
Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。...
- **实现示例**:提供了一个简单的MD5加密实现示例,通过Java中的`MessageDigest`类实现。 通过以上内容,我们可以看到MVC模式的引入有效提升了系统的结构化程度和可维护性;同时,会话技术和加密算法的应用增强了...
例如,创建一个AES加密对象,设置密钥,然后对数据进行加密,最后将加密后的数据存储或传输。解密过程则反之,接收加密数据后,使用相同的密钥进行解密。 总的来说,encryptlib为PHP开发者提供了一站式的加密解决...