`
cwmwss
  • 浏览: 4923 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

.NET与JAVA 同步的MD5加密方式

阅读更多

.NET中MD5加密

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using OAOnline.BLL;
using System.Diagnostics;
using System.Text;
using System.Security.Cryptography;
using System.IO;
//1、加密成32位16进制字符串
    protected string HashMD5_String(string str)
        {
            return FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
        }

//2、同上,增加偏移量

        public string GetMD5(string sDataIn, string move)
        {
            System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] byt, bytHash;
            byt = System.Text.Encoding.UTF8.GetBytes(move + sDataIn);
            bytHash = md5.ComputeHash(byt);     
            md5.Clear();
            string sTemp = "";
            for (int i = 0; i < bytHash.Length; i++)
            {
               sTemp += bytHash[i].ToString("x").PadLeft(2, '0');        
            }
            return sTemp;
        }

//3、将字符串编码成ASCII数组后进行MD5加密,然后再编码成ASCII字符串
        public static string MD5Encrypt(string strEnc)
        {
            string str = "加密失败!";
            try
            {

                System.Security.Cryptography.MD5CryptoServiceProvider MD5 = new System.Security.Cryptography.MD5CryptoServiceProvider();                
                str = ASCIIEncoding.ASCII.GetString(MD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(strEnc)));
                return str;
            }
            catch (System.Exception ex)
            {
                throw (ex);
            }     
        }

 

 

JAVA中的md5加密

  import java.security.MessageDigest;

public class MD5Ecnrypt {        
    //将字符串加密成MD5,32位16进制字串,如"3031209"转成"e043a49740adde7aae4f34818c52528e"
    public static String EncodeMD5Hex(String text) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(text.getBytes("US-ASCII"));
        byte[] digest = md.digest();    
        StringBuffer md5 = new StringBuffer();
        for (int i = 0; i < digest.length; i++) {
            md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16));
            md5.append(Character.forDigit((digest[i] & 0xF), 16));
        }
        return md5.toString();
    }
    //将字符串加密成ASCII字串,如"3031209"转成"?C??@??z?O4??RR?"
    public static String EncodeMD5ASCII(String text) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(text.getBytes("US-ASCII"));
        byte[] digest = md.digest();        
        return new String(digest,"US-ASCII");        
    }
    //将ASCII字串编码成16进制字串,如:“?C??@??z?O4??RR?“转成”3f433f3f403f3f7a3f4f343f3f52523f“
    //参数text
    //返回结果16进制字符串
    public static String DecodeMD5Hex(String text) throws Exception {        
        byte[] digest = text.getBytes();        
        StringBuffer md5 = new StringBuffer();
        for (int i = 0; i < digest.length; i++) {
            md5.append(Character.forDigit((digest[i] & 0xF0) >> 4, 16));
            md5.append(Character.forDigit((digest[i] & 0xF), 16));
        }
        return md5.toString();    
    }
    //比较输入密码MD5加密后与数据库密码相等
    //参数a:输入的密码
    //参数b:数据库的ASCII字串
    //返回结果:a进行md5加密后和b相等则为真,反之则为假
    public static Boolean CheckPSW(String a,String b) throws Exception
    {        
        String strone=EncodeMD5ASCII(a);            
        return strone.equals(b);
    }
}

 

分享到:
评论

相关推荐

    java与c#MD5加密方法得到不一致解决办法

    java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果

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

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

    java常用工具类——个人总结

    - `java.security` 包下的 `MessageDigest` 类用于实现消息摘要算法,如MD5和SHA,常用于数据完整性校验。 - `javax.crypto` 包提供了加密和解密功能,如`Cipher`类可以实现AES、DES等加密算法。 2. **上传工具类...

    java写的p2p软件

    1. **Socket编程**:Java的`java.net.Socket`和`java.net.ServerSocket`类是进行网络通信的基础,它们提供了创建客户端和服务端连接的能力,是构建P2P网络的基本组件。 2. **多线程**:P2P网络中的每个节点可能同时...

    java聊天代码

    5. **用户认证与安全**:在实际应用中,为了保证用户身份的安全,通常会引入用户名和密码认证机制,这可能涉及到加密算法,如MD5或SHA家族,以及HTTPS等安全协议。 6. **事件驱动编程**:在GUI(图形用户界面)部分...

    c# bccrypto-csharp-1.8.5源码

    8. **安全更新**:每个新版本通常会修复已知的安全漏洞,以保持与最新安全实践同步。 9. **性能优化**:1.8.5版本可能包含了一些性能提升,使得加密和解密操作更加高效。 10. **跨平台兼容性**:BouncyCastle的C#...

    java接入微信APP支付/支付宝APP支付

    - **签名机制**:微信支付采用MD5签名方式,确保数据的安全性。签名过程需包含所有请求参数,并且按照特定规则排序。 - **通知回调**:微信支付完成后,会向你设定的回调URL发送异步通知,你需要处理这些通知,...

    一些工具类的整合

    本主题主要聚焦于“一些工具类的整合”,包括MD5加密、URL编码与解码以及网络辅助工具等多个方面。这些工具类在日常开发中扮演着不可或缺的角色,尤其对于处理数据安全、网络通信等问题时更为关键。 首先,让我们来...

    java socket多线程文件上传下载实例项目

    在Java中,Socket是`java.net.Socket`类和`ServerSocket`类的实例。`ServerSocket`监听特定的端口号,等待客户端的连接请求。一旦收到请求,它会创建一个Socket实例来处理该连接。客户端则使用`Socket`类建立到...

    JAVA开发java一个简单的即时通讯工具的设计与开发(源代码+论文).zip

    在本项目中,“JAVA开发java一个简单的即时通讯工具的设计与开发(源代码+论文)”是一个实践性的教程,旨在教授如何使用Java语言构建一个基础的即时通讯应用。这个压缩包包含了源代码和相关的理论分析,为学习者提供...

    支付宝支付(服务端开发)

    你需要理解并正确实现签名算法,通常使用的是RSA或MD5,确保请求在传输过程中不被篡改。 4. **创建支付订单**: 服务端需要调用支付宝的“统一收单交易创建”接口,生成预支付订单。这包括设置商品信息(如商品...

    企业网银支付产品技术开发包V1.1.6

    2. **安全机制**:企业网银支付涉及到用户敏感的金融信息,因此需要采用SSL/TLS加密传输,以及MD5、RSA等安全算法确保数据的安全性。 3. **支付流程**:通常包括用户选择支付方式、跳转至银行网银页面完成支付、...

    Chat-master.zip

    5. **用户认证与安全**:为了保护用户隐私,即时聊天系统通常会包含用户注册、登录功能,可能涉及哈希算法(如MD5或SHA)进行密码加密存储,以及SSL/TLS协议确保数据传输的安全性。 6. **用户界面设计**:使用Java ...

    程 序 员 考 试 试 卷

    - **加密算法**:对称加密(AES)、非对称加密(RSA)、哈希函数(MD5, SHA系列)。 9. **云计算与大数据**: - **AWS、Azure、Google Cloud**:主要云服务提供商的特性和服务。 - **Hadoop、Spark**:大数据...

    shiro-master

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。在"shiro-master"这个项目中,我们可以深入学习Shiro的核心概念和实践应用。下面将详细阐述...

    并发编程,学习手记.pdf

    9. **工具和资源**:包括时间戳转换工具、MD5加密工具、JSON格式化工具、在线cron表达式生成器、主机切换工具、开发框架如Hutool、网络编程库、数据结构可视化工具等,这些工具能帮助开发者更高效地进行并发编程和...

    网络与通信程序设计 复习大纲.doc

    - **加密算法**:对称加密(如AES)、非对称加密(如RSA)、信息摘要算法(如MD5、SHA)在网络通信中的应用。 6. **注册表与进程管理**: - **注册表操作**:了解主要注册表项,学习读写方法。 - **进程管理**:...

    毕业设计-ssm构建彩虹猫购物商城.zip

    用户模块:横向越权、纵向越权、MD5明文加密、guava缓存高复用服务响应对象的设计思想和封装  分类模块(服务端):递归算法复杂对象排重无限层级树结构设计  商品模块:POJO、BO、VO抽象模型高效分页及动态排序...

    视频的刻录加上传

    5. **文件完整性校验**:通过MD5或SHA哈希值验证文件在上传过程中的完整性。 在具体编程实现中,可以使用Python的socket库、Java的java.net.Socket类或者Node.js的net模块来编写Socket应用程序。 综上所述,"视频...

Global site tag (gtag.js) - Google Analytics