`
cuisuqiang
  • 浏览: 3962889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3672244
社区版块
存档分类
最新评论

WEB 加密解密小系统

    博客分类:
  • J2EE
阅读更多

又是在翻阅以前东西时发现了一个WEB加密解密的小系统,麻雀虽小五脏俱全,虽然是以前写的,但是多少有一些参考价值!

系统对每一个文件都录入独立的密码,在查看详细时会要求输入!

系统可以选择AES或DES进行加密,独立密码使用MD5加密后截取作为密钥!

如需参考可下载附件,里面有建库脚本,代码注释和很详尽,欢迎讨论!

 

请您到ITEYE网站看原创,谢谢!

http://cuisuqiang.iteye.com/ !

 

系统有注册和登录,显示用户文件,增加文件,显示和删除文件的操作:

系统截图如下:

登录:

用户主页:

 

 

新增文件:

 

 

查看详细,会要求输入独立密码:

 

显示:

 

系统代码目录:

 

以上为系统展示,详细代码在下面附件中!

 

加密解密的处理类是:

 

 

package org.util;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

/**
 * 加密解密工具类 AES 密钥长度为128,192,256 DES密钥长度为56
 * @说明 
 * @author cuisuqiang
 * @version 1.0
 * @since
 */
public class EncodingUtil {

	/**
	 * 加密方法
	 * @param plainText
	 * @param passWord
	 * @param model 可是为AES或DES,但是密钥长度必须一致
	 * @return
	 */
	public static String encrypt(String plainText, String passWord,
			String model) {
		try {
			// 将密码转为字节数组
			byte[] key = passWord.getBytes("utf-8");
			// 构造密钥的功能类
			SecretKeySpec skeySpec = new SecretKeySpec(key, model);
			// 用指定的加密模式得到一个加密的功能类
			Cipher cipher = Cipher.getInstance(model);
			// 用密钥和模式初始化功能类
			cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
			// 执行操作
			byte[] decryptText = cipher.doFinal(plainText.getBytes("utf-8"));
			// 转为指定字符串
			return byte2hex(decryptText);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 解密方法
	 * @param cipherText
	 * @param passWord
	 * @param model 可是为AES或DES,但是密钥长度必须一致
	 * @return
	 */
	public static String decrypt(String cipherText, String passWord,
			String model) {
		try {
			// 将密码转为字节数组
			byte[] key = passWord.getBytes("utf-8");
			// 构造密钥的功能类
			SecretKeySpec skeySpec = new SecretKeySpec(key, model);
			// 用指定的加密模式得到一个加密的功能类
			Cipher cipher = Cipher.getInstance(model);
			// 用密钥和模式初始化功能类
			cipher.init(Cipher.DECRYPT_MODE, skeySpec);
			// 执行操作
			byte[] plainText = cipher.doFinal(hex2byte(cipherText));
			// 转为指定字符串
			return new String(plainText, "utf-8");
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 16进制字符串转换成字节码
	 * @param strhex
	 * @return
	 */
	private static byte[] hex2byte(String strhex) {
		if (strhex == null) {
			return null;
		}
		int l = strhex.length();
		if (l % 2 == 1) {
			return null;
		}
		byte[] b = new byte[l / 2];
		for (int i = 0; i != l / 2; i++) {
			b[i] = (byte) Integer.parseInt(strhex.substring(i * 2, i * 2 + 2),
					16);
		}
		return b;
	}

	/**
	 * 字节码转换成16进制字符串
	 * @param b
	 * @return
	 */
	private static String byte2hex(byte[] b) {
		String hs = "";
		String stmp = "";
		for (int n = 0; n < b.length; n++) {
			stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
			if (stmp.length() == 1) {
				hs = hs + "0" + stmp;
			} else {
				hs = hs + stmp;
			}
		}
		return hs.toUpperCase();
	}
}

 

注意我们这里使用的JDBC操作数据库,运行时要先创建数据库:

 

 

-- MYSQL上执行
DROP database IF EXISTS `pro_07`;
CREATE DATABASE `pro_07` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use pro_07;
DROP TABLE IF EXISTS `t_note`;
CREATE TABLE `t_note` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `context` varchar(255) DEFAULT NULL,
  `create_time` varchar(255) DEFAULT NULL,
  `newpass` varchar(255) DEFAULT NULL,
  `userid` int(11) DEFAULT NULL,
  `encode_type` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `t_users`;
CREATE TABLE `t_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `userpass` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

其他的都是一些逻辑上的操作!

 

请您到ITEYE网站看原创,谢谢!

http://cuisuqiang.iteye.com/ !

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

9
2
分享到:
评论
5 楼 tiancheng52555 2012-12-29  
下载中。。。
4 楼 allloveend 2012-12-21  
为了注释,赞一个
3 楼 308202251 2012-12-21  
感谢分享。。
2 楼 nba 2012-12-21  
1 楼 bingki 2012-12-21  
不为别了,就为博主代码的详细注释和共享精神,感到敬佩。

相关推荐

    web.config加密解密工具(三个软件集合)

    这里提到的"web.config加密解密工具(三个软件集合)"显然是一组可以帮助开发者处理这种加密与解密问题的工具。 首先,让我们详细了解一下`web.config`加密的原理。ASP.NET提供了一种名为“DPAPI”(Data Protection ...

    WEB 系统中加密解密URL传输参数

    在上述描述中,提到了一个具体的加密解密基类`Security`,它使用了DES(Data Encryption Standard)加密算法来处理URL传输的参数。DES是一种对称加密算法,它使用相同的密钥进行加密和解密。在这个例子中,类中定义...

    webconfige加密解密

    在.NET Framework中,为了保护配置文件(web.config)中的敏感信息不被未授权访问或泄露,引入了一套加密解密机制。这种机制允许开发者对诸如连接字符串(connection strings)、应用程序设置(appSettings)等敏感...

    Java实现的RSA加密解密算法示例

    Java中的RSA加密解密算法实现可以应用于各种Java项目,例如移动应用、Web应用等。 本文详细介绍了Java实现的RSA加密解密算法,包括密钥对生成、公钥和私钥的使用、加密和解密、密钥文件的生成等知识点。这些知识点...

    phpweb全部文件解密-没有加密

    【标题】"phpweb全部文件解密-没有加密"指的是一个与PHPWeb相关的项目或网站源代码包,其中的所有文件都没有进行加密处理。这通常意味着用户可以自由地查看、理解和编辑这些文件,这对于学习PHPWeb开发、调试或者...

    脚本加密解密器脚本加密解密器

    脚本加密解密器是一种工具,它的主要功能是将脚本代码进行加密处理,以使其在未经授权的情况下无法被轻易读取或理解,同时也能提供解密机制,使得在需要执行时能够正确解读并运行加密后的脚本。 脚本加密通常涉及到...

    php+uni-app AES加密解密.rar

    在uni-app中,可以使用JavaScript的crypto-js库来实现AES加密解密。首先,你需要通过HBuilderX引入该库,然后在uni-app代码中使用: ```javascript const CryptoJS = require('crypto-js'); const key = 'your_...

    .net加密解密算法demo

    这个" .net加密解密算法demo "提供了易于理解和使用的加密解密示例,特别适合初学者和开发者快速上手。源代码中包含了详尽的注释,使得自定义关键字成为可能,以满足不同场景下的安全需求。 首先,加密是将明文数据...

    Js Java Rsa 加密解密

    JavaScript、Java和RSA加密解密是信息安全领域中的关键技术,它们被广泛应用于数据传输、用户认证、Web应用安全等场景。RSA是一种非对称加密算法,以其发明者Ron Rivest、Adi Shamir和Leonard Adleman的名字命名,它...

    pb加密解密哈希库

    总之,pb加密解密哈希库是一个集成了多种加密解密和哈希算法的动态链接库,它不仅包含了基础的加密解密功能,还支持多种哈希算法,使得开发者可以在一个统一的接口下实现数据的完整性和安全性保护。通过阅读和实践库...

    flex加密解密小例子

    这个“flex加密解密小例子”是关于如何在Flex项目中实现数据的安全性,特别是在传输和存储过程中防止数据被非法访问或篡改。让我们深入探讨Flex中的加密和解密技术。 1. **Flex基础**:Flex使用MXML和ActionScript ...

    VB6.0 RSA/AES/Md5/Base64加密 解密 微信小程序 javascript 通用

    在微信小程序中,JavaScript可以调用微信小程序提供的API进行加密解密,确保用户数据的安全传输。 6. **微信小程序**是腾讯公司推出的一种轻量级应用开发平台,开发者可以使用JavaScript、WXML和WXSS来编写小程序。...

    web.config本地加密解密方法.txt

    标题与描述均提到了“web.config本地加密解密方法”,这指向了在.NET框架中对web.config文件进行安全处理的一种重要技术。web.config是ASP.NET应用程序的核心配置文件,存储着应用的各种设置,包括连接字符串、应用...

    国密SM4算法前后端加密解密完整代码.zip

    前端JavaScript实现的加密解密代码,通常会利用Web Crypto API或者自定义的加密库来完成。在JavaScript中,由于浏览器环境的限制,可能需要通过Web Worker或Service Worker来处理大量计算任务,以避免阻塞用户界面。...

    javascript将url中的参数加密解密代码

    在JavaScript中,有时我们需要对URL中的参数进行加密和解密,以确保数据的安全性,防止敏感信息被轻易读取。...在实际的Web应用中,通常会使用更强大的加密库,如AES或RSA,来提供更强的安全保障。

    PHP 加密解密处理类

    在IT行业中,加密和解密是确保数据安全...总的来说,理解并正确应用PHP的加密解密技术对于任何Web开发者来说都是至关重要的。通过自定义加密解密处理类,我们可以更好地控制数据安全,确保应用程序能够抵御潜在的攻击。

    加密解密技术内幕资源下载

    加密解密技术是信息安全领域中的核心组成部分,它在保护数据隐私、确保通信安全以及实现数字版权管理等方面发挥着至关重要的作用。在这个“加密解密技术内幕”资源中,我们可以深入探讨这一领域的诸多方面。 首先,...

    加密解密文件程序,合并加密解密

    本文将详细探讨“加密解密文件程序”的相关知识点,重点围绕标题和描述中提及的加密、解密技术,以及与文件安全相关的C#编程实践。 首先,我们要了解加密的基本概念。加密是一种信息安全技术,通过特定的算法将原始...

    .Net加密解密方法

    本文将深入探讨ASP.NET中自定义加密解密的方法,以及如何根据用户设定的密钥进行操作。 首先,我们要了解加密的基本原理。加密是将明文数据转化为无法理解的形式,即密文,而解密则是将密文恢复为原始的明文数据。...

Global site tag (gtag.js) - Google Analytics