一般安全属性 会首先在登陆时 在数据库账号密码的 传输读取上 进行加密 来抵抗攻击(例如;
在用户登录和注册信息处理中采用了MD5加密技术, MD5加密算法,对于普通强度的口令加密。这样在数据库的读写上都是密文传输,可以提高用户信息安全级别。)
package com.oracle.jsp.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * * @author wjxing * */ public class MD5 { // 全局数组 private final static String[] strDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; public MD5() { } // 返回形式为数字跟字符串 private static String byteToArrayString(byte bByte) { int iRet = bByte; // System.out.println("iRet="+iRet); if (iRet < 0) { iRet += 256; } int iD1 = iRet / 16; int iD2 = iRet % 16; return strDigits[iD1] + strDigits[iD2]; } // 返回形式只为数字 @SuppressWarnings("unused") private static String byteToNum(byte bByte) { int iRet = bByte; System.out.println("iRet1=" + iRet); if (iRet < 0) { iRet += 256; } return String.valueOf(iRet); } // 转换字节数组为16进制字串 private static String byteToString(byte[] bByte) { StringBuffer sBuffer = new StringBuffer(); for (int i = 0; i < bByte.length; i++) { sBuffer.append(byteToArrayString(bByte[i])); } return sBuffer.toString(); } public static String GetMD5Code(String strObj) { String resultString = null; try { resultString = new String(strObj); MessageDigest md = MessageDigest.getInstance("MD5"); // md.digest() 该函数返回值为存放哈希值结果的byte数组 resultString = byteToString(md.digest(strObj.getBytes())); } catch (NoSuchAlgorithmException ex) { ex.printStackTrace(); } return resultString; } }
效果:
。简单说一下 应该有的措施吧:
除此之外还有设置权限
对用户进行授权。授权能够保证经过了身份验证的用户有权访问和修改数据或服务。这通常通过在系统中提供一些访问控制模式进行管理。可以对单个用户进行访问控制,也可以对某一类用户进行访问控制。也可以根据用户分组、用户角色或个人列表定义用户类
。
维护数据的机密性。应该对数据进行保护,以防止未经授权的访问。一般通过对数据和通讯链路进行某种形式的加密来实现机密性。另一方面,通信链路一般不具有授权控制,对于通过公共可访问的通信链路传数据来说,加密是唯一的保护措施。对基于web的链路,可以通过VPN或者SSL来实现该链路。
维护完整性。应该如期提供数据,数据中可能有冗余信息、如校验或哈希值,他们可以与原始数据一起进行加密,也可以单独加密。
限制暴露的信息。攻击者通常会利用暴露的某个弱点来攻击主机上的所有数据和服务。设计师可以设计服务在主机上的分配,以使只能在每个主机上获得有限的服务。
限制访问。防火墙根据消息源或目的地端口来限制访问。来自未知源的消息可能是某种形式的攻击。限制对已知源的访问并不总是可行的,例如,一个公共网站上可能会有来自未知源的请求。这种情况中使用一个配置就是所谓的解除管制区。
检测攻击。检测攻击通常通过“入侵检测”系统进行。
从攻击中恢复 设置事件 触发条件 系统瘫痪后 重新加载