跪求JSP的小区物业管理系统源代码,用JSP+TOMCAT+sql server 2000写的有的大神威武跪求勾搭们发我邮箱 450809185@qq.c

jsp+sql2000库存管理系统源代码 1.0 免费下载 - 维维软件园JSP小区物业管理系统毕业设计(论文+JAVA源代码),哪里可以下载?
12-10-26 &
.............
请登录后再发表评论!关于加密问题(Tomcat+JSP+JavaBean+SQL Server 2000)
Description of your first forum.
7 篇帖子 & 分页:1 / 1
由 minimu & 星期一, 日 16:32
开发环境如题,客户的资料比较敏感,要求所有的字段全部要加密(包括BLOB),大家给点建议。
我自己的想法是在Bean(所有的操作基本都在Bean里面)和数据库之间加一个加解密的组件(这样代价最小,以后更换加密算法也方便)。具体如何实现还没有什么合适的方案。望各位DFW多多指点建议。
由 wql & 星期一, 日 16:59
由 7syw & 星期一, 日 21:13
------------------
public class CA {
& &public CA() {
& &static private final int &BASELENGTH & & & & = 255;
& &static private final int &LOOKUPLENGTH & & & = 64;
& &static private final int &TWENTYFOURBITGROUP = 24;
& &static private final int &EIGHTBIT & & & & & = 8;
& &static private final int &SIXTEENBIT & & & & = 16;
& &static private final int &SIXBIT & & & & & & = 6;
& &static private final int &FOURBYTE & & & & & = 4;
& &static private final int &SIGN & & & & & & & = -128;
& &static private final byte PAD & & & & & & & &= (byte) '=';
& &static private byte [] base64Alphabet & & & = new byte[BASELENGTH];
& &static private byte [] lookUpBase64Alphabet = new byte[LOOKUPLENGTH];
& &static &{
& & & & & &for (int i = 0; i & BASELENGTH; i++ ) & & & & & &{
& & & & & & & &base64Alphabet[i] = -1;
& & & & & &}
& & & & & &for (int i = 'Z'; i &= 'A'; i--) & & &{
& & & & & & & &base64Alphabet[i] = (byte) (i - 'A');
& & & & & &}
& & & & & &for (int i = 'z'; i&= 'a'; i--) & & & &{
& & & & & & & &base64Alphabet[i] = (byte) (i - 'a' + 26);
& & & & & &}
& & & & & &for (int i = '9'; i &= '0'; i--) & & & &{
& & & & & & & &base64Alphabet[i] = (byte) (i - '0' + 52);
& & & & & &}
& & & & & &base64Alphabet['+'] &= 62;
& & & & & &base64Alphabet['/'] &= 63;
& & & & & &for (int i = 0; i &= 25; i++ )
& & & & & & & &lookUpBase64Alphabet[i] = (byte) ('A' + i);
& & & & & for (int i = 26, &j = 0; i &= 51; i++, j++ )
& & & & & & & &lookUpBase64Alphabet[i] = (byte) ('a'+ j);
& & & & & &for (int i = 52, &j = 0; i &= 61; i++, j++ )
& & & & & & & &lookUpBase64Alphabet[i] = (byte) ('0' + j);
& & & & & &lookUpBase64Alphabet[62] = (byte) '+';
& & & & & &lookUpBase64Alphabet[63] = (byte) '/';
& & & &public static boolean isBase64( String isValidString )
& & & & & &return isArrayByteBase64(isValidString.getBytes());
& & & &public static boolean isBase64( byte octect )
& & & & & &//shall we ignore white space? JEFF??
& & & & & &return (octect == PAD || base64Alphabet[octect] != -1);
& & & &public static boolean isArrayByteBase64( byte[] arrayOctect )
& & & & & &int length = arrayOctect.
& & & & & &if (length == 0)
& & & & & &{
& & & & & & & &// shouldn't a 0 length array be valid base64 data?
& & & & & & & &//
& & & & & & & &
& & & & & &}
& & & & & &for (int i=0; i & i++)
& & & & & &{
& & & & & & & &if ( !CA.isBase64(arrayOctect[i]) )
& & & & & & & & & &
& & & & & &}
& & & & & &
& & & &public static byte[] encode( byte[] binaryData ) & //编码
& & & & & &int & & &lengthDataBits & &= binaryData.length*EIGHTBIT;
& & & & & &int & & &fewerThan24bits & = lengthDataBits%TWENTYFOURBITGROUP;
& & & & & &int & & &numberTriplets & &= lengthDataBits/TWENTYFOURBITGROUP;
& & & & & &byte & & encodedData[] & & =
& & & & & &if (fewerThan24bits != 0)
& & & & & &{
& & & & & & & &//data not divisible by 24 bit
& & & & & & & &encodedData = new byte[ (numberTriplets + 1 ) * 4 ];
& & & & & &}
& & & & & &else
& & & & & &{
& & & & & & & &// 16 or 8 bit
& & & & & & & &encodedData = new byte[ numberTriplets * 4 ];
& & & & & &}
& & & & & &byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0;
& & & & & &int encodedIndex = 0;
& & & & & &int dataIndex & = 0;
& & & & & &int i & & & & & = 0;
& & & & & &for ( i = 0; i&numberT i++ )
& & & & & &{
& & & & & & & &dataIndex = i*3;
& & & & & & & &b1 = binaryData[dataIndex];
& & & & & & & &b2 = binaryData[dataIndex + 1];
& & & & & & & &b3 = binaryData[dataIndex + 2];
& & & & & & & &l &= (byte)(b2 & 0x0f);
& & & & & & & &k &= (byte)(b1 & 0x03);
& & & & & & & &encodedIndex = i * 4;
& & & & & & & &byte val1 = ((b1 & SIGN)==0)?(byte)(b1&&2):(byte)((b1)&&2^0xc0);
& & & & & & & &byte val2 = ((b2 & SIGN)==0)?(byte)(b2&&4):(byte)((b2)&&4^0xf0);
& & & & & & & &byte val3 = ((b3 & SIGN)==0)?(byte)(b3&&6):(byte)((b3)&&6^0xfc);
& & & & & & & &encodedData[encodedIndex] & = lookUpBase64Alphabet[ val1 ];
& & & & & & & &encodedData[encodedIndex+1] =
& & & & & & & & & &lookUpBase64Alphabet[ val2 | ( k&&4 )];
& & & & & & & &encodedData[encodedIndex+2] =
& & & & & & & & & &lookUpBase64Alphabet[ (l &&2 ) | val3 ];
& & & & & & & &encodedData[encodedIndex+3] = lookUpBase64Alphabet[ b3 & 0x3f ];
& & & & & &}
& & & & & &// form integral number of 6-bit groups
& & & & & &dataIndex & &= i*3;
& & & & & &encodedIndex = i*4;
& & & & & &if (fewerThan24bits == EIGHTBIT )
& & & & & &{
& & & & & & & &b1 = binaryData[dataIndex];
& & & & & & & &k = (byte) ( b1 &0x03 );
& & & & & & & &byte val1 = ((b1 & SIGN)==0)?(byte)(b1&&2):(byte)((b1)&&2^0xc0);
& & & & & & & &encodedData[encodedIndex] & & = lookUpBase64Alphabet[ val1 ];
& & & & & & & &encodedData[encodedIndex + 1] = lookUpBase64Alphabet[ k&&4 ];
& & & & & & & &encodedData[encodedIndex + 2] = PAD;
& & & & & & & &encodedData[encodedIndex + 3] = PAD;
& & & & & &}
& & & & & &else if (fewerThan24bits == SIXTEENBIT)
& & & & & &{
& & & & & & & &b1 = binaryData[dataIndex];
& & & & & & & &b2 = binaryData[dataIndex +1 ];
& & & & & & & &l = (byte) (b2 & 0x0f);
& & & & & & & &k = (byte) (b1 & 0x03);
& & & & & & & &byte val1 = ((b1 & SIGN) == 0)?(byte)(b1&&2):(byte)((b1)&&2^0xc0);
& & & & & & & &byte val2 = ((b2 & SIGN) == 0)?(byte)(b2&&4):(byte)((b2)&&4^0xf0);
& & & & & & & &encodedData[encodedIndex] & & = lookUpBase64Alphabet[ val1 ];
& & & & & & & &encodedData[encodedIndex + 1] =
& & & & & & & & & &lookUpBase64Alphabet[ val2 | ( k&&4 )];
& & & & & & & &encodedData[encodedIndex + 2] = lookUpBase64Alphabet[ l&&2 ];
& & & & & & & &encodedData[encodedIndex + 3] = PAD;
& & & & & &}
& & & & & &return encodedD
& & & &public static byte[] decode( byte[] base64Data ) & & & & //解码
& & & & & &// handle the edge case, so we don't have to worry about it later
& & & & & &if(base64Data.length == 0) { return new byte[0]; }
& & & & & &int & & &numberQuadruple & &= base64Data.length/FOURBYTE;
& & & & & &byte & & decodedData[] & & &=
& & & & & &byte & & b1=0,b2=0,b3=0, b4=0, marker0=0, marker1=0;
& & & & & &// Throw away anything not in base64Data
& & & & & &int encodedIndex = 0;
& & & & & &int dataIndex & &= 0;
& & & & & &{
& & & & & & & &// this sizes the output array properly - rlw
& & & & & & & &int lastData = base64Data.
& & & & & & & &// ignore the '=' padding
& & & & & & & &while (base64Data[lastData-1] == PAD)
& & & & & & & &{
& & & & & & & & & &if (--lastData == 0)
& & & & & & & & & &{
& & & & & & & & & & & &return new byte[0];
& & & & & & & & & &}
& & & & & & & &}
& & & & & & & &decodedData = new byte[ lastData - numberQuadruple ];
& & & & & &}
& & & & & &for (int i = 0; i & numberQ i++)
& & & & & &{
& & & & & & & &dataIndex = i * 4;
& & & & & & & &marker0 & = base64Data[dataIndex + 2];
& & & & & & & &marker1 & = base64Data[dataIndex + 3];
& & & & & & & &b1 = base64Alphabet[base64Data[dataIndex]];
& & & & & & & &b2 = base64Alphabet[base64Data[dataIndex +1]];
& & & & & & & &if (marker0 != PAD && marker1 != PAD)
& & & & & & & &{
& & & & & & & & & &//No PAD e.g 3cQl
& & & & & & & & & &b3 = base64Alphabet[ marker0 ];
& & & & & & & & & &b4 = base64Alphabet[ marker1 ];
& & & & & & & & & &decodedData[encodedIndex] & = (byte)( &b1 &&2 | b2&&4 ) ;
& & & & & & & & & &decodedData[encodedIndex + 1] =
& & & & & & & & & & & &(byte)(((b2 & 0xf)&&4 ) |( (b3&&2) & 0xf) );
& & & & & & & & & &decodedData[encodedIndex + 2] = (byte)( b3&&6 | b4 );
& & & & & & & &}
& & & & & & & &else if (marker0 == PAD)
& & & & & & & &{
& & & & & & & & & &//Two PAD e.g. 3c[Pad][Pad]
& & & & & & & & & &decodedData[encodedIndex] & = (byte)( &b1 &&2 | b2&&4 ) ;
& & & & & & & &}
& & & & & & & &else if (marker1 == PAD)
& & & & & & & &{
& & & & & & & & & &//One PAD e.g. 3cQ[Pad]
& & & & & & & & & &b3 = base64Alphabet[ marker0 ];
& & & & & & & & & &decodedData[encodedIndex] & = (byte)( &b1 &&2 | b2&&4 );
& & & & & & & & & &decodedData[encodedIndex + 1] =
& & & & & & & & & & & &(byte)(((b2 & 0xf)&&4 ) |( (b3&&2) & 0xf) );
& & & & & & & &}
& & & & & & & &encodedIndex += 3;
& & & & & &}
& & & & & &return decodedD
由 minimu & 星期二, 日 08:46
还有,怎么去拦截数据库和程序间的通信呢?这样才能把加密组件加进去。不然工作量太大,今后也不易于扩展和修改。
由 7syw & 星期三, 日 09:45
嘿嘿 那你要了解 你的程序和数据库用什么方式通信的呀 不同的数据库有不同的方式。比如 oracle for jdbc 就有 thin,oci方式,还有win的odbc。嘿嘿 那你就得把jdbc for oracle 的源码拿出来,interface Statement下 的方法 重新翻写一下了。 这个对于一般的程序员难度太大了。
由 minimu & 星期三, 日 12:40
是啊,是太难了;但是如果单表加密的话,工作量会让我崩溃的
由 minimu & 星期三, 日 13:05
接受答案了.
7 篇帖子 & 分页:1 / 1本帖子已过去太久远了,不再提供回复功能。JSP+SQLSERVER网上新闻发布系统 (计算机毕业设计,含系统源代码)
资料价格:10学豆&&[]&&
文件类型: (RAR)[]
文件大小:3
上传时间:
标&&&&&&&签: & & & &
论文写作技巧
本毕业设计包含了论文文档和系统源码;毕业设计文档(网上新闻发布系统),开发工具采用Myeclipse7.5 数据库采用SQLSEVER2000,将项目导入后即可进行二次开发。网盘分享密码:yjpb摘&&要管理信息系统在现代社会已深入到各行各业,由于计算机技术的迅速发展和普及,管理信息系统MIS事实上已成为计算机管理信息系统。湖南科技大学新闻管理信息系统是典型的管理信息系统,其开发主要包括后台数据库的建立和维护以及前端应用程序两个方面。本系统采用JDK作为开发环境,sql server作为数据库服务器,Tomcat作为测试服务器,实现了对新闻类别无限级分类设置、新闻的发布修改删除,前台页面的模板自定义和生成,以及后台管理员权限和数据库的备份收缩等1系列的功能,完成了1个新闻发布系统的所有功能,实现过程了采用了大量的JAVABEAN来封装对数据库和服务器实现复杂逻辑操作。系统捕获了绝大多数的异常情况,具有较好的容错性,杜绝了1般用户直接操作数据库的可能,能够承受大量用户同时浏览的压力,满足大部分新闻发布的需求。关键词: T&&J&&JAVABEAN;&&新闻发布;&&数据库目 录摘&&要 IAbstract II1&&&&引&&言 12&& 系统分析 22.1&&功能需求分析 22.2&&本系统采用的关键技术 32.2.1&&JSP技术 32.2.2&&JavaBean技术 32.2.3&&JDBC技术 42.2.4&&用JDBC访问数据库 52.3&&可行性分析 83&&系统概要设计 93.1&&总体功能 93.1.1&&系统角色 93.1.2&&前台功能 103.1.3&&后台功能 103.2&&E-R图 114&&系统详细设计 124.1&&后台数据库设计 124.1.1&&SQL SERVER 介绍 124.2&&处理流程设计 154.2.1&&系统操作流程 154.2.2&&数据增加流程 164.2.3&&数据修改流程 174.3.4&&数据删除流程 174.3&&系统模块设计 184.3.1&& 管理员登陆 184.3.2 新闻管理 205&&系统调试与测试 265.1&&程序调试 265.2&&程序的测试 265.2.1&&测试的重要性及目的 265.2.2&&测试的步骤 275.2.3&&测试的主要内容 286&&结&&论 306.1&&系统评价 306.2&&安全性问题 31参考文献 32致&&谢 33附录1&&外文参考文献(译文) 34附录2&&外文参考文献(原文) 38
您可能需要的
[] [] [] [] [] [] [] []}

我要回帖

更多关于 tomcat jsp 源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信