`
damiao_cn
  • 浏览: 87733 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Java加密和数字签名 1消息摘要

    博客分类:
  • Java
阅读更多
最近初步接触了下Java加密和数字签名的相关内容,我学习的过程大概分五步:
1)消息摘要
2)私钥加密
3)公钥加密
4)数字签名
5)数字证书
我个人认为学习编程最快的方法就是实际结合理论(即先实际在理论)代码自己跑跑看,调一调,发现问题或奇怪的地方在去找相关资料查查。比从头到尾看一堆理论然后再理论结合实际(先理论再实际)要好。当然了,纯个人观点,嘿嘿。
网上相关的说明和代码有很多,我也只是东抄西抄,然后再加点注释(没人教,都是自己瞎理解的,也不知道理解的对不对,还需要朋友们多多指正),代码如下(这是1消息摘要部分),直接就能跑,希望能为刚刚接触这个的朋友们省点事

package security;

import java.security.MessageDigest;

/**
 * 消息摘要是一种与消息认证码结合使用以确保消息完整性的技术
 * 目前广泛使用的算法有MD4、MD5、SHA-1
 * 在java中进行消息摘要很简单, java.security.MessageDigest提供了一个简易的操作方法,如下
 * 注意:消息摘要是单向的
 */
public class MessageDigestExample {
    public static void main(String[] args) throws Exception {
        
        String beforeDegist = "asdf";
        System.out.println("摘要前:"+beforeDegist);  
        
        //初始信息要转换成字节流的形式
        byte[] plainText = beforeDegist.getBytes("UTF8");

        //使用getInstance("算法")来获得消息摘要,这里使用SHA-1的160位算法
//        MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        
//        System.out.println("\n" + messageDigest.getProvider().getInfo());
        
        //开始使用算法
        messageDigest.update(plainText);
        
        //输出算法运算结果
        String afterDegist = new String(messageDigest.digest(),"UTF8");
        System.out.println("摘要后:"+afterDegist);
    }
}
4
2
分享到:
评论
1 楼 小明哥哥 2011-12-26  
md5加密后是16进制,需要转换传16进制串,直接new String()乱码[color=red][/color]

相关推荐

    java通信安全 加密 数字签名 消息摘要

    java通信安全主要包括:md5 密码加密与验证 对称加密与解密 非对称加密以解密 基于MD5信息摘要算法实现密码加密与验证 凯撒加密算法 数字签名与验证 消息验证码 消息摘要 所有程序都经过了测试

    Java加密和数字签名编程快速入门

    Java加密和数字签名编程是Java开发中的重要领域,主要用于数据安全和身份验证。在这个快速入门教程中,我们将探讨Java如何实现这些功能,并提供基础实践。 一、Java加密 1. 密码学基础:了解对称加密(如AES)和非...

    java加密算法:Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法

    java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...

    Java加密和数字签名编程 Java

    Java加密和数字签名编程是信息安全领域中的重要技术,它们在软件开发中扮演着不可或缺的角色,尤其是在保护数据安全、验证信息完整性和确保身份真实性方面。在Java中,这些功能主要通过Java Cryptography ...

    Java加密和数字签名编程快速入门.pdf

    数字签名是使用私钥加密和消息摘要来确保消息的完整性和机密性。Java 中提供了 `java.security.Signature` 类来实现数字签名。 JDK 1.5 的安全性改进 JDK 1.5 中对安全性方面进行了很大的改进,提供了对 RSA 算法...

    Java加密解密和数字签名完整代码示例

    数字签名算法是指使用非对称加密算法和消息摘要算法结合的算法,用于生成和验证数字签名。 1. 消息摘要算法:消息摘要算法是指将任意长度的消息压缩成固定长度的摘要信息的算法。常见的消息摘要算法有 SHA-1、MD5 ...

    加密解密-Java加密和数字签名.doc

    数字签名是公钥密码学的一个关键概念,它结合了非对称加密和消息摘要技术,用于验证消息的完整性和发送者的身份。在Java中,`java.security.Signature`类用于处理数字签名。以下是一个简单的RSA数字签名示例: ``...

    Java 的IDEA 加密算法加密和数字签名编程

    ### Java 环境下IDEA加密算法及数字签名编程详解 #### 一、加密的必要性和可探究性 随着互联网技术的飞速发展,尤其是电子商务和电子政务的普及,安全加密技术的应用变得越来越广泛。在这样的背景下,对加密技术的...

    Java加密和数字签名编程快速入门[整理].pdf

    总结起来,Java提供了丰富的加密和数字签名功能,包括消息摘要、私钥加密、公钥加密以及数字签名。这些技术在保护数据安全、确保消息完整性和验证发送者身份等方面发挥着重要作用。开发者可以根据具体需求选择合适的...

    java 国密算法实现包含SM2 SM3 SM4和数字签名、数字证书的验证

    在实际应用中,这些国密算法和相关功能通常会结合使用,例如,使用SM2生成公私钥对,用SM3计算消息的哈希值,然后用SM2的私钥进行数字签名,最后用SM2的公钥和SM3的哈希值验证签名。同时,数字证书可以用来封装和...

    JAVA SHA1加密-微信签名适用

    SHA1是一种广泛使用的哈希函数,它在信息安全领域扮演着重要的角色,特别是在数据校验、密码存储和数字签名等方面。在Java中实现SHA1加密,是确保数据安全性和完整性的一个常见做法,尤其在与微信支付接口交互时,...

    Java 签名加密 + c#签名加密

    签名加密是一种常见的安全措施,它结合了数字签名和加密技术,用于验证数据的完整性和来源。 首先,我们来理解一下什么是MD5签名。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的...

    java加密算法,数字签名。

    Java加密算法和数字签名在IT领域中扮演着至关重要的角色,尤其在网络安全、数据保护以及身份验证方面。本文将深入探讨这些概念,并结合提供的标签MD5、Base64、RSA和DES,阐述它们在实际应用中的工作原理和使用场景...

    java_DigitalSign.rar_ sign md5_hash md5 in java_公钥数字签名_加密_数字签名 j

    (2)发送方用自己的私钥加密生成的信息生成发送方的数字签名,发送方把这个数字签名作为发送信息的附件和明文信息,一同用接收方的公钥进行加密,将加密后的密文一同发送给接收方; (3)接收方首先把接收到的密文...

    java写的数字签名

    通过理解和实践这个Java数字签名程序,我们可以更深入地了解数字签名的实现细节,这对于从事信息安全、区块链、加密通信等领域的工作至关重要。同时,对于Java程序员来说,熟悉这些安全相关的库和工具也能够提升他们...

    Java实现的数字签名算法RSA完整示例

    数字签名是一种带有密钥(公钥、私钥)的消息摘要算法。其主要功能是验证数据完整性、认证数据来源、抗否认。在数字签名中,私钥用于签名,而公钥用于验证。常用的数字签名算法有RSA、DSA、ECDSA等。 RSA介绍 RSA...

    C实现的MD5数字签名和java实现的数字签名。

    接收方收到消息和数字签名后,使用发送方的公钥解密数字签名,再对原始消息计算MD5值,如果两者一致,则证明消息未被篡改且来自可信来源。 C语言实现MD5数字签名通常涉及到以下步骤: 1. 引入MD5库,如`openssl`库...

Global site tag (gtag.js) - Google Analytics