Dancing Square

   :: 首页 ::  ::  :: 管理

#

USER.ID
User.ID是一个二进制文件,它标识一个授权的Notes用户。象签名一样,您的User.ID是唯一的,不可能重复。每个用户必须有一个User.ID来访问服务器,每个服务器也必须有一个Server.ID来访问另一个服务器。

一个 User.ID由以下几部分组成:
1. 名称
2. Notes 许可证号
3. 公共密钥和私有密钥
4. 加密键
5. 证书
6. 口令

1. 名称
指用户或服务器的名称,由系统管理员来指定。

2. Notes 许可证号
它证实了该用户是合法的Notes用户,该号码与该ID文件永久联结,不能被改变。

3. 公共密钥和私有密钥
公共密钥和私有密钥是与服务器验证时的个人代码,它们也用于加密和解密邮件信息。

4. 加密键
它用于译解文档中的域,个人的加密键是每个新的User.ID文件的一部分,并且是唯一的。

5. 验证字
它授权用户或服务器访问另外的服务器并交换信息。一个User.ID可以含有多个验证字。当管理员创建一个新用户时,他用验证字给该ID文件盖戳,并指定过期日期。就是该验证字给予用户访问服务器的权限。当验证字过期时,用户必须通知系统管理员请求一个新的验证字。

6. 口令
口令是保护个人的工作站和User.ID文件被未授权使用的可选的特征,在R5中您可以配置恢复口令。

posted @ 2005-06-15 15:31 Dancer 阅读(271) | 评论 (0)编辑 收藏

科技时代_搭建Domino群集
图1
点击此处查看全部科技图片

科技时代_搭建Domino群集
图2
点击此处查看全部科技图片

  作者:金艳 王国栋浙江省电力办公自动化系统(以下简称:OA系统)是全省推广,统一软件、统一平台、统一规划与实施的一套大型应用系统。它的硬件平台采用IBM的小型机AS/400,软件采用Lotus Domino/Notes,并实施了在一台小型机上配置多个Domino的方案。

  嘉兴电力局随着市局、县(市)OA系统单轨制的实施,对网络、服务器的要求不断提高,而以往采用的单机运行配置模式,已经无法满足连续运行的要求。因此嘉兴电力局在全省 电力系统第一个实现了在AS/400服务器环境下双机运行、Domino群集方案。在软件级解决了系统的双工问题,使得任何一台单机无法运行时,都不影响全局OA的正常应用,从而实现系统和数据的高可用性。

  嘉兴电力局群集的规划

  嘉兴电力局OA系统有两台AS/400 820小型机,每台AS/400上配置两块千兆网卡,操作系统版本是V5R1,分别运行3个和4个Domino服务,Domino的版本是R5.0.5。实施群集后,两台AS/400分别又增加了4个和3个Domino服务,使每台服务器运行7个Domino服务。在此,主要以一个Domino实施群集为例进行介绍。由于每台AS/400配置双网卡,我们考虑为群集创建私有局域网,将群集通过服务器探测和群集复制产生的网络通讯分离到私有局域网,这样可更多地保留主局域网的可用带宽。

  群集的配置

  配置Domino服务器

  以JXPHEPMA01/Serves/ZPEPC为例,首先,在同一Domino域中注册另外一个Domino服务器:JXPHEPMA02/Serves/ZPEPC。在JXPHEPMA01上安装和配置JXPHEPMA02。

  权限设置

  设置Domino群集中Administrator以及服务器所需要的权限:

  (1) 设置创建数据库副本的权限

  在JXPHEPMA01及JXPHEPMA02服务器配置文档的安全性页面上,把创建数据库副本的权限赋予系统管理员。

  (2) 增加群组

  群组名称:JXPHEP_Cluster_01;

  群组类型:多用途;

  成员:JXPHEPMA01/Serves/ZPEPC ,JXPHEPMA02/Serves/ZPEPC。

  (3) 修改数据库存取控制

  修改JXPHEPMA01服务器上数据库names.nsf、admin4.nsf、catalog.nsf、cldbdir以及所有应用数据库的存取控制列表。在基本页面上,添加JXPHEP_Cluster_01群组,

  用户类型:服务器组;

  存取级别:管理者。

  在高级页面上,

  管理服务器:JXPHEPMA01/Serves/ZPEPC

  选中此数据库的所有副本并采用相同的存取控制列表。完成存取控制设置后,群集服务器就对数据库及其副本有一致的控制权限。

  在群集服务器上创建连接。

  创建JXPHEPMA02/Serves/ZPEPC到JXPHEPMA01/Serves/ZPEPC一个连接。

  创建群集

  在 Domino Administrator 中,单击“配置”附签,展开“服务器”,并单击“所有服务器文档”,选择要添加到群集的服务器:JXPHEPMA01/Serves/ZPEPC,JXPHEPMA02/Serves/ZPEPC,单击“添加到群集中”,当询问选择要添加服务器到其中的群集时,选择“新建群集”,键入新群集的名称:JXPHEP_Cluster_01。将上面的数据库及所有应用数据库都创建副本到JXPHEPMA02服务器上。

  创建私网

  (1) AS/400增加IP地址。

  在两台小型机的另外一块网卡上分别增加IP地址192.168.64.1 和 192.168.64.2,作为每个Domino的第二个IP地址。

  (2) 群集服务器添加端口。

  在“服务器”“设置端口”中新建端口,名称:tcp;驱动器:TCP。在“服务器”每个群集成员的“服务器”文档的“端口”“Notes 网络端口”附签中,添加为私有局域网,启用新端口,如图1所示。

  (3) 修改NOTES.INI文件。

  从相应的子网为每个端口分配 IP 地址并且将信息以下列格式写入 NOTES.INI 文件中:

  PORT1_TcpIPAddress=0,a.b.c.d:1352

  PORT2_TcpIPAddress=0,e.f.g.h:1352

  其中 PORT1 和 PORT2 是端口名称,a.b.c.d 和 e.f.g.h 是这些端口的 IP 地址。如:JXPHEPMA01端口名称为 TCPIP 和 tcp,这些信息如下所示:

  TCPIP_TcpIPAddress=0, *.*.*.*:1352

  tcp_TcpIPAddress=0,192.168.64.1:1352

  Server_Cluster_Default_Port=tcp

  然后重新启动服务器,让修改的配置生效。

  群集测试

  状态测试

  在Domino服务器的控制台上键入:show cluster,出现Domino群集信息,如图2所示:

  可以看出,群集中的服务器状态都正常。

  复制分析

  从“服务器”、“分析”、“群集分析”,如图2所示进入:

  产生群集的分析报告,如图3所示。

搭建Domino群集

图3 

  通过群集分析报告显示的问题,对数据库的存取控制列表进行修改,保证数据库副本的完全一致性。

  私网测试

  为了确保群集复制使用私有局域网,为此,可以查看群集统计信息。单击“服务器”“统计信息”附签,展开群集的端口名,私有局域网端口tcp的下列统计信息:BytesReceived,BytesSent;展开 Replica,Cluster,SessionBytes,并查看下列群集复制统计信息:In,Out。比较 tcp.portname.BytesReceived 和 Replica.Cluster.SessionBytes.In的值,tcp.portname.BytesSent 和 Replica.Cluster.SessionBytes.Out 的值,这些值应彼此非常接近,但并不相同,因为私有网络不仅用于群集复制。

  邮件测试

  (1) 在任意一个Domino服务器上以某一身份向某用户User1的邮箱发信,两个服务器刷新后,能立即收到,速度也很快。

  (2) 关掉管理服务器JXPHEPMA01后,向User1发邮件,以User1的身份进去后能马上收到邮件。

  根据实际应用,再进行邮件的转发、删除等一系列测试工作,均可实现同步,则可以证明邮件的群集是成功的。

  收发文的测试

  在任意一个Domino服务器上新建一个收发文的流程后,此流程的数据库马上在另一个Domino服务器上得到更新。以相应权限进去后,也能进入流程进行操作。关掉任意一个Domino服务器后,收发文应能正常收取。

  失效转移测试

  关掉JXPHEPMA01服务器后,客户端会自动连接到JXPHEPMA02服务器上,在用户层面上,没有感觉,其它应用操作均正常,只有查看当前数据库属性时才会发现目前使用的是JXPHEPMA02服务器上的数据库。

  群集应用中存在的问题

  (1) 应用数据库新建后,副本不会自动在群集的另外一台服务器上创建,需要手工复制。而且新建的数据库在复制前,首先要按照群集的要求修改数据库存取控制列表,保证今后Domino群集中数据库副本的一致性。

  (2) 有些应用数据库实时性很强,群集不能保证每一秒看到的两个数据库副本一摸一样。两个用户分别在两个群集服务器上,对同一个数据库的同一条文档进行操作时,两边的内容有可能会存在不一致性。针对这种情况,可以通过设置服务器的有效阈值来解决,如果服务器有效指标小于有效阈值,则服务器被标记为 BUSY。服务器标记为 BUSY 时,打开数据库的请求将重新定向到群集中的其它服务器。在JXPHEPMA02服务器NOTES.INI文件中添加:

  server_availability_threshold=100

  这样服务器被标记为 BUSY。平常情况下,用户只对JXPHEPMA01上的数据库进行操作,不过群集间数据库的复制照常进行,当JXPHEPMA01服务器失败时,用户的操作转移到JXPHEPMA02上。这样保证了数据库文档的一致性,不过群集的负载均衡就无法实现。

  (3) 应用数据库的副本不能实现文档的完全一致。这主要是数据库设计时使用“读者”域限制对特定文档的存取。在存取控制列表中具有“编辑者”(或更高)存取级别的用户,若未列入“读者”域中,也不能读文档,更无法复制该文档。所以把服务器增加到每个“读者”域中,保证群集中的服务器对数据库的每个文档有读取权限,实现副本的一致。

  Domino群集在AS/400上的实现,使得用户可以实现无间断的访问数据,平衡服务器间的工作负载,并且在扩大企业规模时保持运行。但是,Domino群集的真正实现还是体现在应用数据库的群集实现,所以在数据库设计阶段就要把群集方案考虑进去,这样才能达到真正意义上Domino群集的成功。

posted @ 2005-06-15 15:27 Dancer 阅读(285) | 评论 (0)编辑 收藏

    這位守護天使就是「Secret Wish許願精靈」,她甜美的誘惑力吸引著人們打開水晶瓶,釋放其中神秘的魔力「Secret Wish許願精靈」是小仙女的化身,象徵著自信、魔力、女性化的溫柔魅力以及力量。神秘面紗般的霧面水晶與純真清透的亮面水晶是揉合新藝術(Art Nouveau)的設計靈感;宛如一座精緻的雕刻藝術,可以放置在梳妝台上細細品味。 


                                                                                asxyjl.jpg

「Secret Wish許願精靈」香水湖水綠設計的包裝盒上,兩位嬌巧又風情萬種的精靈在簇擁繽紛的花朵與飛舞的蝴蝶中嬉鬧著。她們是否擁有著不同的魔法呢?「Secret Wish許願精靈」的正面,美麗的花圈圍繞著ANNA SUI浪漫的標誌,一位充滿靈氣的精靈輕巧地倚坐在花圈的頂端;她一面神秘地微笑著,一面從指尖散播閃亮的小星星。神秘的精靈在召喚著你嗎?她似乎輕聲地訴說:「來這裡,我們一起遊歷香氛森林。」從精靈會意的眼神中,似乎可以看出她心神領悟你的每一個秘密的願望。 


---------------------------------------------------------------------------------------

◎香味: 
香調:清新花果香調 
前味:檸檬、黃瓜、哈密瓜 
中味:紅醋栗、鳳梨、白雪松、浪漫花香 
後味:琥珀、誘惑麝香 

----------------------------------------------------------------------------------------


真爱是有勇气共赴地狱,亦不悔。
如果是天堂,我就无所谓。

posted @ 2005-06-06 11:19 Dancer 阅读(203) | 评论 (0)编辑 收藏

innerHTML // innerText ……
文章来源:http://blog.csdn.net/binyo/archive/2004/10/30/160004.aspx
posted @ 2005-06-05 15:43 Dancer 阅读(129) | 评论 (0)编辑 收藏

   6.1晚上去ROJAM,平时的周三舞池里只有6,7个人,那晚人却出奇的多。我想其实人们都只是需要一个理由,寻着这个机会玩一把。我也一样,妇女节都过了好几个了,儿童节独自呆在宿舍还是觉得虚度年华。那晚是和舍友的妹妹去的,爱玩的小姑娘熟悉各派潮流时尚风尚,只是因为周遭没有一样爱疯爱闹的人,所以旷野里独自狂放。
  去吧台买饮料的时候看到一个吧员,长的刘海,细长的眼睛,很熟练的开瓶递酒,扔掉瓶盖的时候抛出很优美的弧线,忽然间忆起一个遥远的南方男子。
  依旧无法停止追逐的游戏,在受伤和伤害中感受爱情。而对于他,因为没有得到,因为没有结果,所以依旧怀念和感慨。只是早就已经失去了那时的热情和激情,因为已经等待到冷却,等待到麻木。
  。。。女人在投入了的时候总是想要永远和承诺,即使事后也许自己也改变,但那个时候却顽固与执着。对于那些,我已经明白,如果需要的只是过程,即使结局是悲哀,是感伤,是受伤害,那也都全部都接受。因为即使全部失去,也保留了那些美丽心情可以回忆。
   此情可待成追忆
posted @ 2005-06-05 14:20 Dancer 阅读(179) | 评论 (0)编辑 收藏

<一>基础

RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)
取d*e%t==1

这样最终得到三个数: n  d  e

设消息为数M (M <n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。

在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。

rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
求得d。



<二>实践

接下来我们来一个实践,看看实际的操作:
找两个素数:
p=47
q=59
这样
n=p*q=2773
t=(p-1)*(q-1)=2668
取e=63,满足e<t并且e和t互素
用perl简单穷举可以获得满主 e*d%t ==1的数d:
C:\Temp>perl -e "foreach $i (1..9999){ print($i),last if $i*63%2668==1 }"
847
即d=847

最终我们获得关键的
n=2773
d=847
e=63

取消息M=244我们看看

加密:

c=M**d%n = 244**847%2773
用perl的大数计算来算一下:
C:\Temp>perl -Mbigint -e "print 244**847%2773"
465
即用d对M加密后获得加密信息c=465

解密:

我们可以用e来对加密后的c进行解密,还原M:
m=c**e%n=465**63%2773 :
C:\Temp>perl -Mbigint -e "print 465**63%2773"
244
即用e对c解密后获得m=244 , 该值和原始信息M相等。


<三>字符串加密

把上面的过程集成一下我们就能实现一个对字符串加密解密的示例了。
每次取字符串中的一个字符的ascii值作为M进行计算,其输出为加密后16进制
的数的字符串形式,按3字节表示,如01F

代码如下:

#!/usr/bin/perl -w
#RSA 计算过程学习程序编写的测试程序
#watercloud 2003-8-12
#
use strict;
use Math::BigInt;

my %RSA_CORE = (n=>2773,e=>63,d=>847); #p=47,q=59

my $N=new Math::BigInt($RSA_CORE{n});
my $E=new Math::BigInt($RSA_CORE{e});
my $D=new Math::BigInt($RSA_CORE{d});

print "N=$N  D=$D  E=$E\n";

sub RSA_ENCRYPT
{
    my $r_mess = shift @_;
    my ($c,$i,$M,$C,$cmess);

    for($i=0;$i < length($$r_mess);$i++)
    {
        $c=ord(substr($$r_mess,$i,1));
        $M=Math::BigInt->new($c);
        $C=$M->copy(); $C->bmodpow($D,$N);
        $c=sprintf "%03X",$C;
        $cmess.=$c;
    }
    return \$cmess;
}

sub RSA_DECRYPT
{
    my $r_mess = shift @_;
    my ($c,$i,$M,$C,$dmess);

    for($i=0;$i < length($$r_mess);$i+=3)
    {
        $c=substr($$r_mess,$i,3);
        $c=hex($c);
        $M=Math::BigInt->new($c);
        $C=$M->copy(); $C->bmodpow($E,$N);
        $c=chr($C);
        $dmess.=$c;
    }
    return \$dmess;
}

my $mess="RSA 娃哈哈哈~~~";
$mess=$ARGV[0] if @ARGV >= 1;
print "原始串:",$mess,"\n";

my $r_cmess = RSA_ENCRYPT(\$mess);
print "加密串:",$$r_cmess,"\n";

my $r_dmess = RSA_DECRYPT($r_cmess);
print "解密串:",$$r_dmess,"\n";

#EOF

测试一下:
C:\Temp>perl rsa-test.pl
N=2773  D=847  E=63
原始串:RSA 娃哈哈哈~~~
加密串:5CB6CD6BC58A7709470AA74A0AA74A0AA74A6C70A46C70A46C70A4
解密串:RSA 娃哈哈哈~~~


C:\Temp>perl rsa-test.pl 安全焦点(xfocus)
N=2773  D=847  E=63
原始串:安全焦点(xfocus)
加密串:3393EC12F0A466E0AA9510D025D7BA0712DC3379F47D51C325D67B
解密串:安全焦点(xfocus)



<四>提高

前面已经提到,rsa的安全来源于n足够大,我们测试中使用的n是非常小的,根本不能保障安全性,
我们可以通过RSAKit、RSATool之类的工具获得足够大的N 及D E。
通过工具,我们获得1024位的N及D E来测试一下:

n=0x328C74784DF31119C526D18098EBEBB943B0032B599CEE13CC2BCE7B5FCD15F90B66EC3A85F5005D
BDCDED9BDFCB3C4C265AF164AD55884D8278F791C7A6BFDAD55EDBC4F017F9CCF1538D4C2013433B383B
47D80EC74B51276CA05B5D6346B9EE5AD2D7BE7ABFB36E37108DD60438941D2ED173CCA50E114705D7E2
BC511951

d=0x10001

e=0xE760A3804ACDE1E8E3D7DC0197F9CEF6282EF552E8CEBBB7434B01CB19A9D87A3106DD28C523C2995
4C5D86B36E943080E4919CA8CE08718C3B0930867A98F635EB9EA9200B25906D91B80A47B77324E66AFF2
C4D70D8B1C69C50A9D8B4B7A3C9EE05FFF3A16AFC023731D80634763DA1DCABE9861A4789BD782A592D2B
1965


设原始信息
M=0x11111111111122222222222233333333333

完成这么大数字的计算依赖于大数运算库,用perl来运算非常简单:

A) 用d对M进行加密如下:
c=M**d%n :
C:\Temp>perl -Mbigint -e " $x=Math::BigInt->bmodpow(0x11111111111122222222222233
333333333, 0x10001, 0x328C74784DF31119C526D18098EBEBB943B0032B599CEE13CC2BCE7B5F
CD15F90B66EC3A85F5005DBDCDED9BDFCB3C4C265AF164AD55884D8278F791C7A6BFDAD55EDBC4F0
17F9CCF1538D4C2013433B383B47D80EC74B51276CA05B5D6346B9EE5AD2D7BE7ABFB36E37108DD6
0438941D2ED173CCA50E114705D7E2BC511951);print $x->as_hex"
0x17b287be418c69ecd7c39227ab681ac422fcc84bb35d8a632543b304de288a8d4434b73d2576bd
45692b007f3a2f7c5f5aa1d99ef3866af26a8e876712ed1d4cc4b293e26bc0a1dc67e247715caa6b
3028f9461a3b1533ec0cb476441465f10d8ad47452a12db0601c5e8beda686dd96d2acd59ea89b91
f1834580c3f6d90898

即用d对M加密后信息为:
c=0x17b287be418c69ecd7c39227ab681ac422fcc84bb35d8a632543b304de288a8d4434b73d2576bd
45692b007f3a2f7c5f5aa1d99ef3866af26a8e876712ed1d4cc4b293e26bc0a1dc67e247715caa6b
3028f9461a3b1533ec0cb476441465f10d8ad47452a12db0601c5e8beda686dd96d2acd59ea89b91
f1834580c3f6d90898



B) 用e对c进行解密如下:

m=c**e%n :
C:\Temp>perl -Mbigint -e " $x=Math::BigInt->bmodpow(0x17b287be418c69ecd7c39227ab
681ac422fcc84bb35d8a632543b304de288a8d4434b73d2576bd45692b007f3a2f7c5f5aa1d99ef3
866af26a8e876712ed1d4cc4b293e26bc0a1dc67e247715caa6b3028f9461a3b1533ec0cb4764414
65f10d8ad47452a12db0601c5e8beda686dd96d2acd59ea89b91f1834580c3f6d90898,  0xE760A
3804ACDE1E8E3D7DC0197F9CEF6282EF552E8CEBBB7434B01CB19A9D87A3106DD28C523C29954C5D
86B36E943080E4919CA8CE08718C3B0930867A98F635EB9EA9200B25906D91B80A47B77324E66AFF
2C4D70D8B1C69C50A9D8B4B7A3C9EE05FFF3A16AFC023731D80634763DA1DCABE9861A4789BD782A
592D2B1965,  0x328C74784DF31119C526D18098EBEBB943B0032B599CEE13CC2BCE7B5FCD15F90
B66EC3A85F5005DBDCDED9BDFCB3C4C265AF164AD55884D8278F791C7A6BFDAD55EDBC4F017F9CCF
1538D4C2013433B383B47D80EC74B51276CA05B5D6346B9EE5AD2D7BE7ABFB36E37108DD60438941
D2ED173CCA50E114705D7E2BC511951);print $x->as_hex"
0x11111111111122222222222233333333333
(我的P4 1.6G的机器上计算了约5秒钟)

得到用e解密后的m=0x11111111111122222222222233333333333  == M


C) RSA通常的实现
RSA简洁幽雅,但计算速度比较慢,通常加密中并不是直接使用RSA 来对所有的信息进行加密,
最常见的情况是随机产生一个对称加密的密钥,然后使用对称加密算法对信息加密,之后用
RSA对刚才的加密密钥进行加密。


最后需要说明的是,当前小于1024位的N已经被证明是不安全的
自己使用中不要使用小于1024位的RSA,最好使用2048位的。

posted @ 2005-06-03 10:54 Dancer 阅读(278) | 评论 (0)编辑 收藏

1.加密技术

    加密技术通常分为两大类:“对称式”和“非对称式”
    对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”。其缺点主要是在通信之前必须有一个安全的密钥交换过程以及在有多个通信方时会造成密钥量的急剧增加。这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
    非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

    用公钥加密的结果只能用私钥才能解密;而用私钥加密的结果也只能用公钥解密。同时,用公钥推导私钥的代价在实际中是十分高昂的,甚至是不可行的。因此你可以将你的公钥散发给其他每个人,而你自己则安全地持有你的私钥。这样其他人向你发送邮件时就可以用你的公钥进行加密,而这封被加密的邮件只有你才能用你的私钥解密并阅读--这就是用公钥加密算法进行加密的基本原理。

当然在实际中由于单密钥加密算法比公钥加密算法快得多,所以通常是用公钥加密算法加密单密钥加密算法随机生成的密钥,而正文仍用单密钥加密算法用前面提到的随机生成的密钥加密,这样接收到加密邮件的人,可以通过拥有的私钥解密得到单密钥加密算法的密钥,从而可以解密正文。

例:
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:

1.
我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2.
必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载。而私钥,就是自己的,必须非常小心保存,最好加上密码。
公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。

其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。

2.数字签名

  数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。


3.身份认证技术

  类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。


参考链接:详解加密技术概念、加密方法以及应用http://www.51lw.com/article/computer/4733.htm

posted @ 2005-06-03 10:04 Dancer 阅读(450) | 评论 (0)编辑 收藏

后台管理系统分析

1.后台页面一般包括内容:页内搜索,条目显示,操作处理链接,分页条。
2.出现的形式:表格,按钮,文本链接,表单提交
3.页面代码布局:
1)变量定义及参数接受
2)抽取公用或和其他页面类似的模块,如添加、编辑、删除、屏蔽(用户或文章)等对数据库表进行操作的代码集中。
用select case语句,将具体操作标识符用上一页面request提交到本页后进行选择、判断,然后处理。此过程放在整个页面前端,保证先完成处理后再从数据库抽取信息
3)表单提交验证(客户端jscript函数定义)
4)分页代码处理与表格数据库条目的显示
5)表单提交,onsubmit调用提交验证函数(参数控制表单是否显示)
4.实现方式分析:
1)事件触发jscript函数调用
2)隐藏域(type=hidden)提交判断处理类型
5.文件整理
1)css样式表文件
2)链接数据库文件
3)网页安全性函数调用及预处理文件
posted @ 2005-06-03 09:35 Dancer 阅读(6353) | 评论 (22)编辑 收藏

      这阵子在找关于event的信息和资料,在js中常看到应用event的例子,但window的属性和方法中我一直都找不到这样的属性或方法,苦恼中。。今天看到一些资料先引进来研究一下再说。。。

      下面抄两个event使用的例子,以供分析和学习:

1.问题:如何按回车光标按顺序一个个文本框跳,跳到"提交"再提交?

参考链接:
http://www.blueidea.com/bbs/NewsDetail.asp?id=79353

方法:将你要排序的对象的TabIndex属性按次序从小到大赋值,编一个函数,用window.event.keyCode来获取用户的按键,如果是13则是回车键,那么就执行:window.event.keyCode=9;在对象的onkeydown事件里面来捕获keyCode啊
代码如下:
<HTML>
<HEAD>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function tabclick() {
    if (window.event.keyCode==13) {
        window.event.keyCode=9
    }
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P><INPUT id=text1 name=text1 tabIndex=0 LANGUAGE=javascript onkeydown="return tabclick()"></P>
<P><INPUT id=text2 name=text2 tabIndex=1 LANGUAGE=javascript onkeydown="return tabclick()"></P>
<P><INPUT id=text3 name=text3 tabIndex=2 LANGUAGE=javascript onkeydown="return tabclick()"></P>
</BODY>
</HTML>

2.问题:只让输入数字的输入框
<body>
<script>
function JHshNumberText(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))    //ascii码
|| (window.event.keyCode == 13) || (window.event.keyCode == 46) 
|| (window.event.keyCode == 45)))
{
window.event.keyCode = 0 ;
}

</script>
<form name=frm>
<input type=text name=test value="" onKeypress="JHshNumberText()">
<input type=button name=submit value=submit>
</form>
</body>

posted @ 2005-06-01 14:51 Dancer 阅读(982) | 评论 (0)编辑 收藏

     摘要: 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcElement.releaseCapture();  事件按键 event.keyCode event.shiftKey ev...  阅读全文
posted @ 2005-06-01 14:20 Dancer 阅读(459) | 评论 (0)编辑 收藏

仅列出标题
共5页: 1 2 3 4 5