动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.JBuilder 9.0开发实用技巧七招.
.Java设计模式之工厂方法模式.
.使用Quick在Java对象和XML之间进.
.位运算符.
.java初学者必读-经验总结(3).
.如何实时得到javaobject占用的空.
.J2EE开发框架发展简史.
.Java繁体中文处理完全攻略(二).
.利用java Api打印JTable.
.轻松掌握Java泛型(第3部分).
.maven的安装和使用.
.纯Java周历的写法.
.最简单的Struts程序.
.抽象工厂类.
.关于在Eclipse下使用Subversion教.
.slice方法 (String).
.编写高效的线程安全类.
.为什么java世界没有真正的快速开.
.Siemens Java开发初步.
.JBOSS-QL中的like、order by的实.

Java中常用的加密算法应用MD5,SHA,RSA

文章类别:Java教程 | 发表日期:2008-1-5 |


1. MD5加密,常用于加密用户名密码,当用户验证时。

protected byte[] encrypt(byte[] obj) ...{
    try ...{
        MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.update(obj);
        return md5.digest();
    } catch (NoSUChAlgorithmException e) ...{
        e.printStackTrace();
    }
}

2. SHA加密,与MD5相似的用法,只是两者的算法不同。

protected byte[] encrypt(byte[] obj) ...{
    try ...{
        MessageDigest sha = MessageDigest.getInstance("SHA");
            sha.update(obj);
        return sha.digest();
    } catch (NoSuchAlgorithmException e) ...{
        e.printStackTrace();
    }
}

3. RSA加密,RAS加密答应解密。常用于文本内容的加密。

import Java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
/** *//**
 * <b>RSAEncrypt</b>
 * <p>
 * @author maqujun
 * @see
 */
public class RSAEncrypt ...{
    /** *//**
 * Main method for RSAEncrypt.
     * @param args
     */
    public static void main(String[] args) ...{
        try ...{
            RSAEncrypt encrypt = new RSAEncrypt();
           
            String encryptText = "encryptText";
            KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
            keyPairGen.initialize(1024);
            KeyPair keyPair = keyPairGen.generateKeyPair();
            // Generate keys
            RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
            RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

            byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());
            byte[] de = encrypt.decrypt(privateKey,e);
            System.out.println(encrypt.bytesToString(e));
            System.out.println(encrypt.bytesToString(de));
        } catch (Exception e) ...{
            e.printStackTrace();
        }
    }
/** *//**
     * Change byte array to String.
     * @return byte[]
     */
    protected String bytesToString(byte[] encrytpByte) ...{
        String result = "";
        for (Byte bytes : encrytpByte) ...{
            result += (char) bytes.intValue();
        }
        return result;
    }
/** *//**
     * Encrypt String.
     * @return byte[]
     */
    protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj)  ...{
        if (publicKey != null) ...{
            try ...{
                Cipher cipher = Cipher.getInstance("RSA");
                cipher.init(Cipher.ENCRYPT_MODE, publicKey);
                return cipher.doFinal(obj);
            } catch (Exception e) ...{
                e.printStackTrace();
            }
        }
        return null;
    }
    /** *//**
     * Basic decrypt method
     * @return byte[]
     */
    protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) ...{
        if (privateKey != null) ...{
                try ...{
                    Cipher cipher = Cipher.getInstance("RSA");

                    cipher.init(Cipher.DECRYPT_MODE, privateKey);
                    return cipher.doFinal(obj);
                } catch (Exception e) ...{
                    e.printStackTrace();
                }
            }
   
        return null;
    }
}



上一篇:JPCAP——Java中的数据链路层控制 人气:299
下一篇:使用Java程序的泛型应该注意的几个地方 人气:337
点击此处浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-20 站长俱乐部新闻发布系统 v5.19
2008-5-20 DotNetTextBox网页编辑器 v3.4.7
2008-5-20 phpMyFAQ v2.5.0 多国语言版
2008-5-20 DreamArticle 文章管理系统 v2.0
2008-5-20 Drupal v7.xdev Build080518
2008-5-20 逐迹内容管理系统AspxNuke v2.0.
2008-5-20 ajax奥运留言本 v1.0
2008-5-20 QQ空间博客全自动挂机互踩好友
2008-5-20 网人采集 v1.2.0
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号