构思
由于互联网的机制,在不使用 Websocket 的情况下,是不能够长时间与用户持续保持连接的。所以我这里打算使用 COOKIE 与数据库信息进行校验。 其中用户端储存的 Token 是经过 hash 加密过的数据,数据库存储的数据是不经过 hash 加密的原始数据。最终通过一系列计算后使用 PHP 自带的 hash 校验函数进行 Token 验证。
为什么我前面说实现一端登录,另一端自动注销呢? Token 在执行登陆之前,会生成初始 Token 数据,这部分数据是没有经过加密而且没有进行组合的,存储在 SESSION 中。在用户执行登陆时候,自行生成4位随机数做基础计算数据,随后检查目前服务器时间戳与用户端生成的 Token 数据进行比对,以及获...
Ajax异步请求,servlet产生随机数据,Html页面无刷新显示。
运行环境:jdk1.5+tomcat 5.5
一、ajaxServlet.java
package com;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Random;
public class ajaxServlet extends HttpServlet{
private static final String CONTENT_TYPE="...
<%@ page language="c#" contenttype="text/html" responseencoding="gb2312" %><script runat="server"> void page_load(object sender,eventargs e){ random objrandom=new random(); label_1.text=convert.tostring(objrandom.next(100)); } </script><asp:label id="label_1" runat="server"></asp:label>...
现在很多网页登陆的时候都使用了随机图片的方式,是一种简单、有效的防止黑客恶意攻击的手段。今天看了一些网上的资料,明白其生成原理:从样本中,获取随机字符串,随机字符串保存进session,并以位图的方式形成随机码图片。
实现:添加命名空间
using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;生成页代码
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.We...
由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,下面的例子可以克服这一缺陷,实现数据库的随机读取。 C#: <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load( object sender, EventArgs e ) { Random rnd = new Random(unchecked((int)DateTime.Now.Ticks)); int intRandomNumber = r...
/*******
$rand_movie是一个二维数组
$rand=array_rand($rand_movie,5);
得到五个二维数组的键值
foreach ($rand as $v) {
$movies[]=$rand_movie[$v];
}
得到随机生成的二维数组
*******/
$rand_movie=$pageUtil->listData($conn,true,CACHETIME,$sql);
$rand=array_rand($rand_movie,5);
foreach ($rand as $v) {
$movies[]=$rand_movie[$v];
}...
<?php$url='../images'; //图片地址,只可以用./you/images这样的路径$files=array();if ($handle=opendir("$url")) { while(false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if(substr($file,-3)=='gif' || substr($file,-3)=='jpg') $files[count($files)] = $file; } } }closedir($handle); $random=rand(0,count($files)-1);if(substr($files[$random],-3)=='gif') header("Content-type: image/gif");elseif(substr($files[$random],-3)==...
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
Y...
using System;using System.Security.Cryptography;using System.Text;namespace Utility {public class PasswordGenerator {public PasswordGenerator() {this.Minimum = DefaultMinimum;this.Maximum = DefaultMaximum;this.ConsecutiveCharacters = false;this.RepeatCharacters = true;this.ExcludeSymbols = false;this.Exclusions = null;rng = new RNGCryptoServiceProvider();} protected int GetCryptographicRandomNumber(int lBound, int uBound) { // 假定 lBound >= 0 && lBound < uBound// 返回一个 int >= lBound and < uBounduint urndnum; byte[] rndnum = new B...
用这个可以来验证用户和生成随机密码teaman <? //---------------------------------------------------- // Function GetSID() // // Parameters : $nSize number of caracters, default 24 // Return value : 24 caracters string // // Description : This function returns a random string // of 24 caracters that can be used to identify users // on your web site in a more secure way. You can also // use this function to generate passwords. //---------------------------------------------------- function GetSID ($nSize=24) { // Randomize mt_srand ((double) microtime() * 1000000); for ($i=1; $...
<% function FormatReArray(str) dim temp,sindex,temp1 temp=str&"," temp1=split(temp,",") for sindex=0 to ubound(temp1) if temp1(sindex)<>"" then temp=replace(temp,temp1(sindex)&",","") temp=temp&temp1(sindex)&"," end if next FormatReArray=left(temp,len(temp)-1) end function Function ReplaceReg(str,patrn,replStr,Ignor) '========================================= '参数解释: 'str 原来的字符串 'patrn 要替换的字符串(正则表达式) 'replStr 要替换成的字符串 'Ignor 是否区分大小写(1不区分,0区分) '===========...