`
yangwn
  • 浏览: 77109 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论
  • icewubin: kimmking 写道icewubin 写道Dollyn 写道 ...
    Java
  • kimmking: icewubin 写道Dollyn 写道我十分怀疑最后一条,很 ...
    Java
  • beneo: 完全忽略了一個好的JVM的優化能力 難道java是C編譯器么 ...
    Java
  • icewubin: Dollyn 写道我十分怀疑最后一条,很多编译器都会自动做类似 ...
    Java
  • Dollyn: 我十分怀疑最后一条,很多编译器都会自动做类似优化吧(不知道JD ...
    Java

一个登录密码MD5加密的封装类代码共享

    博客分类:
  • JAVA
阅读更多
*
* @(#)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"));
分享到:
评论

相关推荐

    visual c++ vc MD5加密算法源代码+DLL成品.zip

    总的来说,这个压缩包提供了一个完整的MD5加密算法实现,对于学习C++编程、理解MD5算法以及掌握DLL的创建和使用都是宝贵的资源。你可以通过分析和修改这些源代码,进一步提升自己的编程技能和对加密算法的理解。

    MD5动态库封装类

    在初始化阶段,MD5会设置一个128位的初始值;数据处理阶段,将输入数据分块处理,每个块512位,通过一系列的数学运算(如异或、加法、循环左移等)更新内部状态;结果填充确保输入数据长度为512位的整数倍;最后,...

    基于 vc6.0 md5 加密

    3. **代码实现**:在C++中,你可以创建一个类来封装MD5的操作,包括初始化、更新数据、最终化和获取哈希值等步骤。例如,初始化MD5上下文,使用`MD5_Init()`;添加数据,使用`MD5_Update()`;完成计算,使用`MD5_...

    简单的C++类,MD5算法

    `md5c.c`可能是一个简化的C语言版本的MD5实现,而`md5class.cpp`则可能是将MD5算法封装成C++类的代码。C++类提供了一种封装和抽象的方法,使得MD5计算更加易于使用和理解。 `md5class.h`是MD5类的头文件,它定义了...

    flexMD5官方加密包

    例如,可能有一个`MD5`类,其中包含一个`hash`方法,接收一个字符串参数,返回该字符串的MD5摘要。 ```actionscript import com.flexMD5.MD5; var str: String = "Hello, World!"; var md5Hash: String = MD5.hash...

    C# 加密解密2种方式

    综上所述,"C# 加密解密2种方式"项目结合了C#的TripleDES和MD5加密技术,以及DLL库和WinForms应用程序的设计,为开发者提供了一个实用的加密解密工具。通过此项目,开发者可以学习到如何在C#环境中实现数据的加密和...

    C#加密算法MD5_RSA使用实例+Dll例用示例

    上述代码展示了如何将一个字符串转换为MD5哈希值。 RSA则是一种非对称加密算法,它的特点是有一对公钥和私钥。公钥可以公开,用于加密数据;私钥必须保密,用于解密数据。这使得RSA在数据传输、数字签名等方面非常...

    C#对称加密和解密记事本文件

    在C#中,我们可以通过System.Security.Cryptography.MD5类来计算一个数据的MD5哈希值。MD5的主要用途是验证数据的完整性和一致性,而不是用于加密,因为其存在安全性问题,容易遭受碰撞攻击。 在这个程序中,"md5...

    java和.net交换加密算法(.net版本)+(java版本)

    这些代码会展示如何在各自的环境中初始化加密对象、生成密钥、执行加密和解密操作,并可能包含如何在两个平台之间交换加密数据的步骤。 10. **测试与调试**: 实现后,务必进行详尽的测试,确保在所有可能的输入...

    oracle 加密技术

    wrap加密方式是Oracle提供的一种数据保护方法,它使用一个密钥对其他敏感数据进行封装或“打包”。wrap技术可以保护如PL/SQL代码和数据库凭据等数据的完整性。当使用wrap技术时,可以采用一个密钥对数据进行加密,...

    VB加密解密源码

    MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,用于生成固定长度的数字摘要,而DLL(Dynamic Link Library)是Windows操作系统中的共享库文件,用于封装特定功能供其他程序调用。ASE(Advanced ...

    公共类文件,分别是DataOperate.cs、CommClass.cs、GlobalProperty.cs、MD5Encryp

    `MD5Encrypt`类可能提供了MD5加密和解密功能,常见的应用场景包括密码存储、文件校验等。这个类可能包含`GetMD5Hash()`方法用于计算输入字符串的MD5值,或者`VerifyMD5()`方法用于验证数据的完整性和原始性。 5. **...

    [学生信息管理系统第三篇]具体业务功能实现--登录及代码解说

    以上代码中,`UserLoginRequest`是封装了用户名和密码的类,`userRepository`是用于操作数据库的Repository,`passwordEncoder`是用于密码验证的编码器,`UsernamePasswordAuthenticationToken`是Spring Security中...

    python实现登陆教务系统查询成绩.pdf

    在这个场景中,密码先经过MD5加密,然后与共享值(sharevalue)进行进一步的哈希运算,以增加密码的安全性。这是常见的密码加密方式,防止在网络传输中明文暴露。 3. **HTML解析与BeautifulSoup**: - `...

    30个java常用的工具类.rar

    4. **MD5加密工具类**:MD5是一种常用的密码学哈希函数,用于安全存储密码。`MD5Util`通常提供计算字符串的MD5值,确保数据安全性。 5. **获取绝对路径工具类**:在处理文件路径时,工具类可能提供了获取相对路径的...

    javaAPI实现的加密与解密方法的运用.doc

    在给定的代码片段中,`Coder`类封装了这些功能,提供了一站式的加密解密服务。 在实际应用中,我们需要根据安全需求选择合适的算法。对于敏感数据,应优先考虑使用非对称加密和强哈希算法,同时结合证书和密钥管理...

    澜语亭留言板_gbook(毕设 + 课设).zip

    9. PagesBean.class:这可能是一个通用的页面数据封装类,用于在多个页面间共享数据或者存储一些全局信息。 通过这个项目,学生可以学习到如何构建基于Java Servlet和JSP的Web应用,理解MVC架构,以及如何使用...

    JAVA上百实例源码以及开源项目源代码

    Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。...

    韩顺平2011最细servlet笔记2.doc

    - **实现示例**:提供了一个简单的MD5加密实现示例,通过Java中的`MessageDigest`类实现。 通过以上内容,我们可以看到MVC模式的引入有效提升了系统的结构化程度和可维护性;同时,会话技术和加密算法的应用增强了...

    encryptlib

    例如,创建一个AES加密对象,设置密钥,然后对数据进行加密,最后将加密后的数据存储或传输。解密过程则反之,接收加密数据后,使用相同的密钥进行解密。 总的来说,encryptlib为PHP开发者提供了一站式的加密解决...

Global site tag (gtag.js) - Google Analytics