WEB 加密解密小系统
程序员文章站
2022-04-10 20:57:39
...
又是在翻阅以前东西时发现了一个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同步!
推荐阅读
-
PHP解密支付宝小程序的加密数据、手机号的示例代码
-
web.config .net中数据库连接字符串加密解密
-
web.config中连接字符串的读写和加密解密
-
web.config本地加密解密BAT
-
-41003: aes 小程序加密数据解密失败问题
-
(转载)DES加密解密(适用Windows和Linux系统)防止linux下解密失败
-
加密部署java web应用系统 javawebtomcatc++加密
-
谁了解web服务器怎么配置会把session加密?能解密吗?
-
C#(HTML)_小技巧_关于textbox框中不能输入HTML标签的解决方法(如输入“
”后,在提交表单时系统会崩溃)_html/css_WEB-ITnose
-
谁了解web服务器怎么配置会把session加密?能解密吗?