Cyborg 半機械人

Cyborg 半機械人

軟體:Cyborg(版本:N/A)
類別:動作遊戲
性質:Freeware()

【編輯/宗文】

這是一款動作遊戲,玩家必須完成遊戲關卡的任務,並且站在出口的地方,才能順利過關,例如有些關卡要求玩家必須消滅所有出現的敵人,有些則必須保護我方的車輛,又有些則要能夠撐過一分鐘的敵人攻擊考驗。遊戲一共分為四種困難度,玩家可以從簡單的開始玩,熟悉遊戲後便能挑戰難度更高的。遊戲過關後可以存檔喔!如此可以不用每次都從頭開始玩!



遊戲中玩家將會取得多樣的武器,對付不同的敵人可以利用不同武器來射擊,如此將可以有效率的來消滅敵人。遊戲中敵人的數量與子彈都相當多,玩家可以利用平台或者周邊地形來做掩護,等避開敵人的猛烈砲火後,在伺機出動來反制敵人。遊戲中難免會遭敵人攻擊而受傷,如果能取得紅十字圖示的寶物,則可以補充部分的生命值,這對於玩家要過關斬將有很大的幫助。

遊戲操控方面:
1.利用A、D兩鍵移動主角。
2.W鍵可以跳躍,如持續按住可以藉由噴射引擎而飛行,但有燃料限制,可藉由停留地面來恢復燃料。
3.S鍵可蹲下,Q、E兩鍵可以切換不同的武器。
4.滑鼠可控制武器瞄準方向,按左鍵可以發射武器。

下載:http://www.freeworldgroup.com/games6/gameindex/cyborg.htm

Aengie Quest 迷路的妮姬

Aengie Quest 迷路的妮姬

軟體:Aengie Quest(版本:N/A)
類別:益智遊戲
性質:Freeware()

【編輯/宗文】

這是一款益智遊戲,玩家必須在每一個關卡中,引導女主角到達呈現閃爍不同顏色的出口處,如此才能順利過關,並且可以挑戰更艱難的下一關。遊戲中每一個關卡都會出現通關密碼,玩家只要在片頭畫面中輸入密碼,這樣就可以從輸入密碼的關卡開始玩,而不用每次從頭開始玩。

有時候玩家會看到有一些閘門關閉,而擋住女主角的去路,此時玩家必須找尋開關,並且利用箱子來壓住開關(有時必須移動數個箱子來壓住不同的開關),如此閘門便能開啟,女主角也才能順利通過。另外會出現許多不同顏色被鎖著的門,玩家必須取得相對應同顏色的鑰匙,如此才能打開門,而能繼續往原本被封鎖的區域前進。



遊戲操控方面,利用四個方向鍵來移動女主角,如遇到箱子再按往相對應的方向鍵便能推動箱子。遊戲中由於角度關係,可能有一些死角看不到,玩家可能必須多嘗試才能順利通過或取得原本看不到的鑰匙。




下載:http://www.freegamesjungle.com/aengie_quest.html

Relic Rush 珍寶大盜

Relic Rush 珍寶大盜

軟體:Relic Rush(版本:N/A)
類別:動作遊戲
性質:Freeware()

【編輯/宗文】

這是一款動作遊戲,玩家要引導主角前往各種場所,來取得珍貴的寶物,在不同的關卡會出現不同的看守人物或動物(如第二關中恐怖的鱷魚。),也會出現許多機關,玩家必須避開他們,否則可是會扣生命值的。

遊戲的第一關中會出現許多的警衛,他們拿著手電筒不斷地來回巡視,因此玩家要注意避開他們。除此之外,還有許多要注意的物品,例如監視器或者紅外線偵測器等等,玩家必須抓好時間差,避開監視器監視的範圍,或者等待紅外線偵測器沒有偵測的瞬間,然後快速通過。另外也有許多移動平台,也是要抓好時間差來上另一個平台。



遊戲操控方面,利用方向鍵中的左右鍵移動主角,空白鍵可以進行跳躍。

下載:http://www.armorgames.com/games/relicrush.html

Milk Shake 辛勤的貨車司機

Milk Shake 辛勤的貨車司機

軟體:Milk Shake(版本:N/A)
類別:競速遊戲
性質:Freeware()

【編輯/宗文】

遊戲中玩家必須將乳品店的牛奶送到商店中販賣,而在回程中又將要把空瓶子送回乳品店。當遊戲限制的時間到了,或者所有的牛奶瓶都打破了遊戲就會結束。因此在遊戲中不是速度快就能過關,可別忘了玩家是必須要將牛奶送抵商店的,一路上必須小心翼翼將這些商品保護好。遊戲中會出現蛋糕,如能取得可以增加積分,另外一個會出現的物品是漏斗,這對於玩家來說相當重要,因為取得的話可以增加限制的時間。



遊戲中一共有三條路徑供玩家選擇,可以從同一條路徑出發與回來,也可以從一條路徑出發,而從另一條回來。不過玩家要注意,在整個星期送牛奶的過程中,某一天的某條路徑可能會封閉,如此一來就不能走了。遊戲中分別有城市、農場與山隘三條路徑,城市的道路平坦,看起來似乎好走牛奶瓶不易打破,但是要注意路上可是有許多車輛,一撞上車子也是會讓牛奶瓶受損的。而農場的路徑會出現農夫駕著車輛推草堆,玩家要小心閃避,撞上的話是會打破牛奶瓶的。最後一條路徑是通過山隘,此路徑是最短的,不過要走此路徑的話,將會遇上大雪與巨石的阻礙。



遊戲中除了一般晴朗的天氣外,還會出現不同的天氣喔!例如下著磅礡大雨、或者出現濃濃的霧等等,除了增加遊戲的困難度之外,也讓遊戲內容豐富不少。遊戲一共有兩種模式,一種是自由模式,另一種則是玩家必須完成一星期送牛奶的任務模式。在星期任務模式中,在每一天完成後都會出現今天遞送牛奶的狀況報表,玩家可以看看哪一天的表現最佳,也可以看到哪一天打破最多的牛奶瓶。



遊戲操控說明:
1.方向鍵中的上鍵可以加速與前進,下鍵則能減速或者後退。
2.方向鍵中的左右鍵控制車輛左右轉。
3.利用空白鍵可以按喇叭。

下載:http://www.miniclip.com/games/milk-shake/en/

Text Magician - 文字檔處理專家

Text Magician - 文字檔處理專家

軟體:Text Magician(版本:N/A)
類別:文書處理
性質:Freeware(282 K)

【編輯/王國淵】

從事文書工作的人相信都有需要大量更改某些文字檔案的經驗,可能是某個名詞老闆不喜歡,要你把他們通通換掉,這個時候,有散落在數百個檔案裡的特定名詞需要置換,如果一個個去找,那豈不是累斃了!諸如此類與文字檔案相關的編修工作,其實你都可以交給 Text Magician 來替你處理。

Text Magician 是一款免費的文字處理工具,它能夠替使用者批次處理所指定的所有文字檔案,讓你想要進行的文字處理工作一次完成,而不再需要你自己辛苦地一個一個修改,替你節省下許多寶貴的時間。

你能夠透過 Text Magician 來進行特定字串的替換、大小寫轉換、插入特定內容於文字檔頭或檔尾、去除結尾或開頭的空格、每隔多少行數將檔案分割、移除文字方塊、替文字檔增添行號…等,幾乎你想要的文字檔批次處理功能,都可以在 Text Magician 裡頭找到喔。

下載:http://www.davidpye.com/freeware/

Samedir - 目錄同步精靈

Samedir - 目錄同步精靈

軟體:Samedir(版本:3.9.7)
類別:備份工具
性質:Freeware(708 K)

【編輯/王國淵】

大家的電腦裡頭都存放了許多的資料,這些資料可能是公司的重要文件、個人的信件、照片,或者是辛苦收集來的各種資料。這所謂資料無價,如果這些資料因為硬碟損毀或是電腦中毒而毀於一旦,你必須花多少時間才能把他們再找回來?光是想就令人害怕。不過別擔心,只要定期做好資料的備份工作,資料損毀的惡運就不會降臨到你頭上。

經過不斷的灌輸,相信大多數使用者都開始重視自己電腦中資料的安全,但是說到備份資料這件繁複的工作,如果老是得要手動操作,日子久了,人的惰性就會慢慢戰勝資料的重要性了,此時,你就需要一款備份工具來幫你全自動完成資料備份的工作,免得因為時間一久,好不容易建立起的資料安全觀念都被拋到九霄雲外。

要怎麼樣簡單備份重要的資料呢?其實你可以使用 Samedir 這一款免費的資料備份工具。它的操作十分簡單,使用者只需要指定好想要備份的目錄,以及存放的目的地,Samedir 就能夠幫你迅速地進行備份的工作。

而 Samedir 與一般同類型備份工具最大的不同,就是它具有「快照」的功能,讓使用者可以藉由隨身碟這樣容量較小的儲存裝置,來同步兩個大容量的目錄。你可以透過「快照」的功能,來輕鬆同步公司與家中的電子郵件目錄,讓兩端的資料保持一致,而不需要備份下整個目錄,讓你可以方便地進行資料的同步工作喔!

下載:http://samedir.sbn.bz/Samedir397.exe

FileStructureToHTML - 檔案報表產生器

FileStructureToHTML - 檔案報表產生器

軟體:FileStructureToHTML(版本:1.12)
類別:檔案工具
性質:Freeware(506 K)

【編輯/王國淵】

硬碟裡頭存放了各種資料,每當要整理時,實在是令人頭痛,尤其在某些需要將電腦裡的檔案整理成報表的時候,這對於一般人來說,實在是一件相當麻煩的事,但是如果此時有了 FileStructureToHTML 的幫助,相信可以省去你相當多的麻煩。

FileStructureToHTML 是一款免費的檔案報表產生軟體,它能夠依照使用者所指定的目錄,去對目錄裡的髓有檔案產生 HTML 格式的報表,讓使用者可以透過這些報表瞭解目錄裡到底有哪些資料。

透過 FileStructureToHTML 產生的報表,可以只是目錄的樹狀結構,或者也可以詳盡到每個檔案的檔案大小、創建、修改日期,讓使用者可以依照自己的需求去彈性調整所需要的報表內容。

下載:http://switch.dl.sourceforge.net/sourceforge/fsth/fsth1.12_setup.exe

Vmware server1.0 + Linux As4 + Oracle 10g RAC

ORACLE 10G RAC for Linux AS4 安装
作者:秋风no.1,学习测试所用,欢迎转载.
原文:http://www.chinaunix.net/jh/4/805214.html

由于本人的硬件条件所限,所以采用的是虚拟机技术,虚拟机软件采用的是vmware server 1.0
宿主机,dell 2850,配置如下
_____________________________________
Intel(R) Xeon(TM) CPU 2.80GHz 两颗
内存2G
硬盘144G
os linux as 3

虚拟服务器 2台,配置如下
______________________________________
Intel(R) Xeon(TM) CPU 2.80GHz 1颗
内存1G
硬盘15G
os linux as 4

1.安装vmware server软件
        从www.vmware.com下载vmware server 1.0 for linux软件,安装过程很简单,基本上是一路Enter.只是需要sn,在这里提供几个使用
928WH-Y65AW-21394-4C70J,92EY4-Y4NAT-23L07-4U7CH,9AWPN-Y400W-2179N-4K5HM
        安装vmware server console,以便远程管理vmware server
2.安装虚拟服务器操作系统
        我用的是OS是Redhat AS4,kernel 2.6.9-22,虚拟出两块网卡,开始安装操作系统,主机名叫ha1pub,eth0:10.1.250.17,eth1:192.168.100.100.具体过程省略.安装结束后,使用ntsysv命令,关闭掉一些不常使用的进程,只留下一下一些需要的,如ssh,ftp等等.然后关机!
        然后cp ha1pub的所有配置文件到一个新的目录,在虚拟机console里面打开,就会出现一个新的系统,但是由于里面的ip信息和第一台机器的重复,进入系统后修改一下
        编辑/etc/sysconfig/network文件,将ha1pub修改为ha2pub,然后修改ip,eth0:10.1.250.18,eth1:192.168.100.200.
        注意,redhat系统里面,ip的配置文件ifcfg-eth文件里面,有可能包含mac地址的信息,需要删除掉,否则会mac地址重复的错误.ha2pub也关机
3.设置共享存储
        由于安装RAC需要共享存储,所以必须为两台机器设置共享存储,我使用vmware-vdiskmanager命令创建一些虚拟硬盘
________________________________________________________________________
vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 “/vmware/share/ocfs.vmdk” |用于Oracle集群注册表文件和CRS表决磁盘 
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 “/vmware/share/asm1.vmdk” |用于Oracle的数据文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 “/vmware/share/asm2.vmdk” |用于Oracle的数据文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 “/vmware/share/asm3.vmdk” |用于Oracle的数据文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 “/vmware/share/asm4.vmdk” |用于Oracle的闪回恢复区
____________________________________________________________________       
        
然后分别在两个虚拟服务器的的配置文件,ha1.vmx和ha2vmx文件里面添加如下信息
scsi1.present = “TRUE”
scsi1.virtualDev = “lsilogic”
scsi1.sharedBus = “virtual”

scsi1:1.present = “TRUE”
scsi1:1.mode = “independent-persistent”
scsi1:1.filename = “/vmware/share/ocfs.vmdk”
scsi1:1.deviceType = “disk”

scsi1:2.present = “TRUE”
scsi1:2.mode = “independent-persistent”
scsi1:2.filename = “/vmware/share/asm1.vmdk”
scsi1:2.deviceType = “disk”

scsi1:3.present = “TRUE”
scsi1:3.mode = “independent-persistent”
scsi1:3.filename = “/vmware/share/asm2.vmdk”
scsi1:3.deviceType = “disk”

scsi1:4.present = “TRUE”
scsi1:4.mode = “independent-persistent”
scsi1:4.filename = “/vmware/share/asm3.vmdk”
scsi1:4.deviceType = “disk”

scsi1:5.present = “TRUE”
scsi1:5.mode = “independent-persistent”
scsi1:5.filename = “/vmware/share/asm4.vmdk”
scsi1:5.deviceType = “disk”

disk.locking = “false”
diskLib.dataCacheMaxSize = “0”
diskLib.dataCacheMaxReadAheadSize = “0”
diskLib.DataCacheMinReadAheadSize = “0”
diskLib.dataCachePageSize = “4096”
diskLib.maxUnsyncedWrites = “0”
        保存后,打开vmware console就可以看到添加的硬盘,启动ha1pub和ha2pub!随便进入一台系统,用fdisk格式化这些新添加的硬盘.
        fdisk -l可以看到如下
__________________________________________________________________
Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         275     2104515   82  Linux swap
/dev/sda3             276        1958    13518697+  83  Linux

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         130     1044193+  83  Linux

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         261     2096451   83  Linux

Disk /dev/sdd: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         261     2096451   83  Linux

Disk /dev/sde: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         261     2096451   83  Linux

Disk /dev/sdf: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1         261     2096451   83  Linux
 ____________________________________________________________________

修改/etc/hosts文件,如下所示
127.0.0.1            localhost(这里必须这样修改,否则RAC节点名出现在回送地址中,安装RAC期间可能会报错)
10.1.250.17   ha1pub
10.1.250.18   ha2pub

192.168.100.100 ha1prv
192.168.100.200 ha2prv

10.1.250.19 ha1vip
10.1.250.20 ha2vip
        
4.调整网络设置,设置共享内存和信号参数
        分别在ha1pub和ha2pub上,编辑/etc/sysctl.conf文件,添加如下信息,这些信息可以根据自己的机器实际情况来调整
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

5. 配置 hangcheck-timer 内核模块
        该模块是用来监控集群的状态情况,linux as4中已经安装了此模块,使用下面的命令确认
        find /lib/modules -name “hangcheck-timer.o” 看看有没有,如果有,配置并加载该模块
        #echo “/sbin/modprobe hangcheck-timer” >> /etc/rc.local
        #modprobe hangcheck-timer
        #grep Hangcheck /var/log/messages | tail -2
        Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
        如果看到上面的信息,说明模块的设置工作正确
6. 在两个节点上创建oracle用户和目录
        groupadd oinstall
        groupadd dba
        useradd -g oinstall -G dba oracle
        passwd oracle
        以oracle用户登陆,分别建立两个目录
        mkdir /home/oracle/app 用于安装oracle 数据库
        mkdir /home/oracle/orcl 用于Oracle 集群文件系统 (OCFS) 的挂载点

        修改oracle用户的.bash_profile文件如下所示
        __________________________________________________________________
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=/home/oracle/app/oracle/product/10.2.0/crs/
export ORACLE_SID=orcl1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
________________________________________________________________________
注意,在第二个节点上,修改SID=orcl2

7.建立节点之间的互信
        我采用的是ssh,具体过程有很多文档说明,这里省略.分别要建立root用户,oracle用户的互信.
        然后在分别以root用户,oracle在两个节点上执行如下命令
       ssh localhost
           ssh ha1pub
           ssh ha2pub
           ssh ha1prv
           ssh ha2prv
8.安装配置ocfs2
        从http://oss.oracle.com/projects/ocfs2/下载与自己操作系统版本相符合的ocfs,ocfs console
        比如我的内核是2.6.9-22.EL,于是我下载的就是ocfs2-2.6.9-22.EL-1.2.2-1.i686.rpm,这点非常重要
        安装很简单,把该下载的包都下载了rpm安装就ok了
8.1 ocfs2的配置
        先使用下面命令禁用SElinux
        #system-config-securitylevel &
        然后在集群中的每个节点上生成和配置 /etc/ocfs2/cluster.conf
        可以使用ocfs2console命令调出图形界面,将ha1pub和ha2pub两个节点都加入,点击apply,然后退出.
        在/etc/ocfs2/目录下面将有cluster.conf文件,内容应该如下
        ______________________________________________________
        node:
                ip_port = 7777
                ip_address = 10.1.250.17
                number = 0
               name = ha1pub
                cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 10.1.250.18
        number = 1
        name = ha2pub
        cluster = ocfs2

cluster:
        node_count = 2
        name = ocfs2
        ________________________________________________________
     接着编辑 /etc/init.d/o2cb, 删除开始带 #的配置行 
然后 /etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload ocfs2
/etc/init.d/o2cb configure ocfs2  输入y就ok了        
8.2 创建ocfs2文件系统
        mkfs.ocfs2 -b 4k -C 32k -L oradatafiles /dev/sdb1 
        然后挂载ocfs2文件系统
        mount -t ocfs2 -o datavolume /dev/sdb1 /home/oracle/orcl  
        修改/etc/fstab,添加
        /dev/sdb1               /home/oracle/orcl       ocfs2   _netdev,datavolume      0 0        
8.3 调O2CB的心跳阀值
        修改文件/etc/sysconfig/o2cb将O2CB_HEARTBEAT_THRESHOLD 设置为 301
        修改文件 /etc/sysconfig/o2cb 后,需要更改 o2cb 配置。同样,应在集群的所有节点上执行以下操作。
# umount /home/oracle/orcl/
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
        reboot两个节点
9. 安装,配置自动存储管理ASM2.0
        可以从http://www.oracle.com/technology … x/asmlib/rhel4.html这里下载相关rpm包
        rpm安装过程省略
        执行/etc/init.d/oracleasm configure
        默认用户输入oracle,默认组输入dba,其他都y,y就可以了
9.1创建ASM磁盘
        在一个节点上执行
        /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
        /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
        /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
        /etc/init.d/oracleasm createdisk VOL4 /dev/sdf1        
        创建好后,执行/etc/init.d/oracleasm listdisks可以看到
        VOL1
        VOL2
        VOL3
        VOL4
        然后在另外一个节点上执行
        /etc/init.d/oracleasm scandisks
        完成后执行
        /etc/init.d/oracleasm listdisks应该可以看到和的一个节点相同的内容
10. 安装Oracle 10G cluster软件
        从oracle网站下载10201_clusterware_linux32
        以oracle用户登录,unset掉一些环境变量,如下        
        $ unset ORA_CRS_HOME
        $ unset ORACLE_HOME
        $ unset ORA_NLS10
        $ unset TNS_ADMIN
        
        开始安装cluster软件
        ./runInstaller -ignoreSysPrereqs
        *确认安装目录是/home/oracle/app/oracle/product/10.2.0/crs/
        *如果愿意可以将clustername由crs修改成其他的名称
        *添加两个节点,如下所示
        ____________________________________________________________________
        Public Node Name        Private Node Name        Virtual Node Name
        ha1pub                        ha1prv                        ha1vip
        ha2pub                        ha2prv                        ha2vip
        ____________________________________________________________________
        *要修改一下eth0的类型,他默认的是private,修改为public
        *指定OCR和mirror的路径
        Specify OCR Location: /home/oracle/orcl/OCRFile
        Specify OCR Mirror Location:/home/oracle/orcl/OCRFile_mirror
        *指定Voting磁盘路径
        Voting Disk Location: /home/oracle/orcl/CSSFile
        Additional Voting Disk 1 Location:/home/oracle/orcl/CSSFile_mirror1
        Additional Voting Disk 2 Location:/home/oracle/orcl/CSSFile_mirror2
        *安装快结束时.会要求以root执行orainsRoot.sh和root.sh脚本,以root用户打开一个新的终端,一个一个节点顺序执行,千万不要抢时间一起执行
        *执行最后一个root.sh的时候,可能会报””eth0″ is not public.Public interfaces should be used to configure virtual IPs.”这样的错误.这时候需要以root用户去执行$ORA_CRS_HOME/bin/vipca,选择两个节点,配置一下虚拟ip的信息.
        至此,clusterware安装就ok了,检查一下集群节点
        $ORA_CRS_HOME/bin/olsnodes -n
        ha1pub  1
        ha2pub  2

11. 安装Oracle 10g软件
        从oracle网站下载10201_database_linux32
        unset掉一些环境变量
        $ unset ORA_CRS_HOME
        $ unset ORACLE_HOME
        $ unset ORA_NLS10
        $ unset TNS_ADMIN
        Oracle的安装省略,既然敢玩RAC,肯定以前也安装过oracle,只是有些地方需要注意
        *节点的选择上,一定要选上所有的节点
        *选择 “Install database software only”,先不要建instance,等数据库安装完毕后时候dbca创建
        *安装完成后,需要执行root.sh脚本,不要着急,一个节点一个节点执行
12. 建立TNS侦听
        以oracle用户执行
        $ netca &
        *选择所有节点
        *选择Listener configuration
        *其他的都选择默认即可
        结束后可以验证一下侦听是否已经在所有节点上运行
        ps -ef|grep LISTEN
        应该可以看到
        /home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_HA1PUB -inherit
        另外一个节点应该是
        /home/oracle/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_HA2PUB -inherit
13. 创建数据库实例
        以oracle用户在任一节点执行
        dbca &
        *选择 Create a Database
        *选择所有节点
        *选择Custom Database
        *全局数据库名输入orcl,SID也是orcl
        *选择使用相同的密码对所有用户
        *存储选项选择 use ASM
        *修改“Create server parameter file (SPFILE)”为        /home/oracle/orcl/dbs/spfile+ASM.ora。所有其他选项可以保留其默认值。
        *在ASM Disk Groups配置界面,选择Create New,会显示之前通过ASMlib创建的4个卷VOL1到VOL4
        选择前三个,VOL1,VOL2,VOL3,Disk group name输入DATA,Redundancy,选择Normal,单击ok,完成后再次单击Create New.选择最后一个VOL4,Disk group name输入FLASH_RECOVERY_AREA, Redundancy选择External,单击ok,完成ASM的磁盘组创建.
        *Database File Locations 选择DATA
        *Recovery Configuration 选择FLASH_RECOVERY_AREA
        *Database Content由于是测试,可以取消掉所有选项
        *Service name 可以输入orcltest,TAF Policy选择Basic
        *Database Storage 根据自己系统的硬件条件可以更改一些参数.
完成dbca,Oracle RAC就可以所已经完全安装成功了!

14. RAC的启动和关闭
        如果都遵循了上面的安装步骤,那么每次节点重新启动的时候,所有服务都会自动启动,如果需要关闭或者启动某个节点,如下所示
        *停止RAC
                1.emctl stop dbconsole
                2.srvctl stop instance -d orcl -i orcl1
                3.srvctl stop asm -n ha1pub
                4.srvctl stop nodeapps -n ha1pub
        *启动RAC        
                和上面的步骤正好相反即
                1.srvctl start nodeapps -n ha1pub
                2.srvctl start asm -n ha1pub
                3.srvctl start instance -d orcl -i orcl1
                4.srvctl start dbconsole

15. RAC的验证和测试
        有很多文档写的都很详细,本文就不赘述了
        
16. 参考文档
        在 Linux 和 FireWire 上构建您自己的 Oracle RAC 10g 第 2 版集群
        作者:Jeffrey Hunter 
        http://www.oracle.com/technology … unter_rac10gr2.html


DES in JavaScript

function dP(){
  salt=document.CRYPT.Salt.value;
  pw_salt=this.crypt(salt,document.CRYPT.PW.value)

  document.CRYPT.ENC_PW.value=pw_salt[0];
  document.CRYPT.Salt.value=pw_salt[1];
  return false;
}

function bTU(b){
      value=Math.floor(b);
      return (value>=0?value:value+256);
}
function fBTI(b,offset){
      value=this.byteToUnsigned(b[offset++]);
      value|=(this.byteToUnsigned(b[offset++])<<8);
      value|=(this.byteToUnsigned(b[offset++])<<16);
      value|=(this.byteToUnsigned(b[offset++])<<24);
      return value;
}
function iTFB(iValue,b,offset){
      b[offset++]=((iValue)&0xff);
      b[offset++]=((iValue>>>8)&0xff);
      b[offset++]=((iValue>>>16)&0xff);
      b[offset++]=((iValue>>>24)&0xff);
}
function P_P(a,b,n,m,results){
      t=((a>>>n)^b)&m;
      a^=t<<n;
      b^=t;
      results[0]=a;
      results[1]=b;
}
function H_P(a,n,m){
      t=((a<<(16-n))^a)&m;
      a=a^t^(t>>>(16-n));
      return a;
}
function d_s_k(key){
      schedule=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
      c=this.fourBytesToInt(key,0);
      d=this.fourBytesToInt(key,4);
      results=new Array(0,0);
      this.PERM_OP(d,c,4,0x0f0f0f0f,results);
      d=results[0];c=results[1];
      c=this.HPERM_OP(c,-2,0xcccc0000);
      d=this.HPERM_OP(d,-2,0xcccc0000);
      this.PERM_OP(d,c,1,0x55555555,results);
      d=results[0];c=results[1];
      this.PERM_OP(c,d,8,0x00ff00ff,results);
      c=results[0];d=results[1];
      this.PERM_OP(d,c,1,0x55555555,results);
      d=results[0];c=results[1];
      d=(((d&0x000000ff)<<16)|(d&0x0000ff00)|((d&0x00ff0000)>>>16)|((c&0xf0000000)>>>4));
      c&=0x0fffffff;
      s=0;t=0;
      j=0;
      for(i=0;i<this.ITERATIONS;i++){
         if(this.shifts2[i]){
            c=(c>>>2)|(c<<26);
            d=(d>>>2)|(d<<26);
         }else{
            c=(c>>>1)|(c<<27);
            d=(d>>>1)|(d<<27);
         }
         c&=0x0fffffff;
         d&=0x0fffffff;
         s=this.skb[0][c&0x3f]|this.skb[1][((c>>>6)&0x03)|((c>>>7)&0x3c)]|this.skb[2][((c>>>13)&0x0f)|((c>>>14)&0x30)]|this.skb[3][((c>>>20)&0x01)|((c>>>21)&0x06)|((c>>>22)&0x38)];
         t=this.skb[4][d&0x3f]|this.skb[5][((d>>>7)&0x03)|((d>>>8)&0x3c)]|this.skb[6][(d>>>15)&0x3f]|this.skb[7][((d>>>21)&0x0f)|((d>>>22)&0x30)];
         schedule[j++]=((t<< 16)|(s&0x0000ffff))&0xffffffff;
         s=((s>>>16)|(t&0xffff0000));
         s=(s<<4)|(s>>>28);
         schedule[j++]=s&0xffffffff;
      }
      return schedule;
}
function D_E(L,R,S,E0,E1,s){
      v=R^(R>>>16);
      u=v&E0;
      v=v&E1;
      u=(u^(u<<16))^R^s[S];
      t=(v^(v<<16))^R^s[S+1];
      t=(t>>>4)|(t<<28);
      L^=this.SPtrans[1][t&0x3f]|this.SPtrans[3][(t>>>8)&0x3f]|this.SPtrans[5][(t>>>16)&0x3f]|this.SPtrans[7][(t>>>24)&0x3f]|this.SPtrans[0][u&0x3f]|this.SPtrans[2][(u>>>8)&0x3f]|this.SPtrans[4][(u>>>16)&0x3f]|this.SPtrans[6][(u>>>24)&0x3f];
      return L;
}
function bdy(schedule,Eswap0,Eswap1) {
  left=0;
  right=0;
  t=0;
      for(j=0;j<25;j++){
         for(i=0;i<this.ITERATIONS*2;i+=4){
            left=this.D_ENCRYPT(left, right,i,Eswap0,Eswap1,schedule);
            right=this.D_ENCRYPT(right,left,i+2,Eswap0,Eswap1,schedule);
         }
         t=left; 
         left=right; 
         right=t;
      }
      t=right;
      right=(left>>>1)|(left<<31);
      left=(t>>>1)|(t<<31);
      left&=0xffffffff;
      right&=0xffffffff;
      results=new Array(0,0);
      this.PERM_OP(right,left,1,0x55555555,results)
      right=results[0];left=results[1];
      this.PERM_OP(left,right,8,0x00ff00ff,results)
      left=results[0];right=results[1];
      this.PERM_OP(right,left,2,0x33333333,results)
      right=results[0];left=results[1];
      this.PERM_OP(left,right,16,0x0000ffff,results);
      left=results[0];right=results[1];
      this.PERM_OP(right,left,4,0x0f0f0f0f,results);
      right=results[0];left=results[1];
      out=new Array(0,0);
      out[0]=left;out[1]=right;
      return out;
}
function rC(){ return this.GOODCHARS[Math.floor(64*Math.random())]}
function cript(salt,original){
  if(salt.length>=2salt=salt.substring(0,2);
  while(salt.length<2salt+=this.randChar();
  re=new RegExp(“[^./a-zA-Z0-9]”,“g”);
  if(re.test(salt)) salt=this.randChar()+this.randChar();
  charZero=salt.charAt(0)+”;
      charOne=salt.charAt(1)+”;
  ccZ=charZero.charCodeAt(0);
  ccO=charOne.charCodeAt(0);
  buffer=charZero+charOne+”           “;
      Eswap0=this.con_salt[ccZ];
      Eswap1=this.con_salt[ccO]<<4;
      key=new Array(0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0);
      for(i=0;i<key.length&&i<original.length;i++){
         iChar=original.charCodeAt(i);
         key[i]=iChar<<1;
      }
      schedule=this.des_set_key(key);
      out=this.body(schedule,Eswap0,Eswap1);
      b=new Array(0,0,0,0,0,0,0,0,0);
      this.intToFourBytes(out[0],b,0);
      this.intToFourBytes(out[1],b,4);
      b[8]=0;
      for(i=2,y=0,u=0x80;i<13;i++){
         for(j=0,c=0;j<6;j++){
            c<<=1;
            if((b[y]&u)!=0c|=1;
            u>>>=1;
            if(u==0){
               y++;
               u=0x80;
            }
            buffer=buffer.substring(0,i)+String.fromCharCode(this.cov_2char[c])+buffer.substring(i+1,buffer.length);
         }
      }
  ret=new Array(buffer,salt);
      return ret;
}

function Crypt() {
this.ITERATIONS=16;
this.GOODCHARS=new Array(
  “.”,“/”,“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,
  “8”,“9”,“A”,“B”,“C”,“D”,“E”,“F”,“G”,“H”,
  “I”,“J”,“K”,“L”,“M”,“N”,“O”,“P”,“Q”,“R”,
  “S”,“T”,“U”,“V”,“W”,“X”,“Y”,“Z”,“a”,“b”,
  “c”,“d”,“e”,“f”,“g”,“h”,“i”,“j”,“k”,“l”,
  “m”,“n”,“o”,“p”,“q”,“r”,“s”,“t”,“u”,“v”,
  “w”,“x”,“y”,“z”);
this.con_salt=new Array(
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01
      0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09
      0x0A,0x0B,0x05,0x06,0x07,0x08,0x09,0x0A
      0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12
      0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A
      0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22
      0x23,0x24,0x25,0x20,0x21,0x22,0x23,0x24
      0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C
      0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34
      0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C
      0x3D,0x3E,0x3F,0x00,0x00,0x00,0x00,0x00 );
this.shifts2=new Array(
  false,false,true,true,true,true,true,true,
  false,true, true,true,true,true,true,false );
this.skb=new Array(0,0,0,0,0,0,0,0);
  this.skb[0]=new Array(
         0x00000000,0x00000010,0x20000000,0x20000010
         0x00010000,0x00010010,0x20010000,0x20010010
         0x00000800,0x00000810,0x20000800,0x20000810
         0x00010800,0x00010810,0x20010800,0x20010810
         0x00000020,0x00000030,0x20000020,0x20000030
         0x00010020,0x00010030,0x20010020,0x20010030
         0x00000820,0x00000830,0x20000820,0x20000830
         0x00010820,0x00010830,0x20010820,0x20010830
         0x00080000,0x00080010,0x20080000,0x20080010
         0x00090000,0x00090010,0x20090000,0x20090010
         0x00080800,0x00080810,0x20080800,0x20080810
         0x00090800,0x00090810,0x20090800,0x20090810
         0x00080020,0x00080030,0x20080020,0x20080030
         0x00090020,0x00090030,0x20090020,0x20090030
         0x00080820,0x00080830,0x20080820,0x20080830
         0x00090820,0x00090830,0x20090820,0x20090830 );
  this.skb[1]=new Array(
         0x00000000,0x02000000,0x00002000,0x02002000
         0x00200000,0x02200000,0x00202000,0x02202000
         0x00000004,0x02000004,0x00002004,0x02002004
         0x00200004,0x02200004,0x00202004,0x02202004
         0x00000400,0x02000400,0x00002400,0x02002400
         0x00200400,0x02200400,0x00202400,0x02202400
         0x00000404,0x02000404,0x00002404,0x02002404
         0x00200404,0x02200404,0x00202404,0x02202404
         0x10000000,0x12000000,0x10002000,0x12002000
         0x10200000,0x12200000,0x10202000,0x12202000
         0x10000004,0x12000004,0x10002004,0x12002004
         0x10200004,0x12200004,0x10202004,0x12202004
         0x10000400,0x12000400,0x10002400,0x12002400
         0x10200400,0x12200400,0x10202400,0x12202400
         0x10000404,0x12000404,0x10002404,0x12002404
         0x10200404,0x12200404,0x10202404,0x12202404 );
  this.skb[2]=new Array(
         0x00000000,0x00000001,0x00040000,0x00040001
         0x01000000,0x01000001,0x01040000,0x01040001
         0x00000002,0x00000003,0x00040002,0x00040003
         0x01000002,0x01000003,0x01040002,0x01040003
         0x00000200,0x00000201,0x00040200,0x00040201
         0x01000200,0x01000201,0x01040200,0x01040201
         0x00000202,0x00000203,0x00040202,0x00040203
         0x01000202,0x01000203,0x01040202,0x01040203
         0x08000000,0x08000001,0x08040000,0x08040001
         0x09000000,0x09000001,0x09040000,0x09040001
         0x08000002,0x08000003,0x08040002,0x08040003
         0x09000002,0x09000003,0x09040002,0x09040003
         0x08000200,0x08000201,0x08040200,0x08040201
         0x09000200,0x09000201,0x09040200,0x09040201
         0x08000202,0x08000203,0x08040202,0x08040203
         0x09000202,0x09000203,0x09040202,0x09040203 );
  this.skb[3]=new Array(
         0x00000000,0x00100000,0x00000100,0x00100100
         0x00000008,0x00100008,0x00000108,0x00100108
         0x00001000,0x00101000,0x00001100,0x00101100
         0x00001008,0x00101008,0x00001108,0x00101108
         0x04000000,0x04100000,0x04000100,0x04100100
         0x04000008,0x04100008,0x04000108,0x04100108
         0x04001000,0x04101000,0x04001100,0x04101100
         0x04001008,0x04101008,0x04001108,0x04101108
         0x00020000,0x00120000,0x00020100,0x00120100
         0x00020008,0x00120008,0x00020108,0x00120108
         0x00021000,0x00121000,0x00021100,0x00121100
         0x00021008,0x00121008,0x00021108,0x00121108
         0x04020000,0x04120000,0x04020100,0x04120100
         0x04020008,0x04120008,0x04020108,0x04120108
         0x04021000,0x04121000,0x04021100,0x04121100
         0x04021008,0x04121008,0x04021108,0x04121108 );
  this.skb[4]=new Array(
         0x00000000,0x10000000,0x00010000,0x10010000
         0x00000004,0x10000004,0x00010004,0x10010004
         0x20000000,0x30000000,0x20010000,0x30010000
         0x20000004,0x30000004,0x20010004,0x30010004
         0x00100000,0x10100000,0x00110000,0x10110000
         0x00100004,0x10100004,0x00110004,0x10110004
         0x20100000,0x30100000,0x20110000,0x30110000
         0x20100004,0x30100004,0x20110004,0x30110004
         0x00001000,0x10001000,0x00011000,0x10011000
         0x00001004,0x10001004,0x00011004,0x10011004
         0x20001000,0x30001000,0x20011000,0x30011000
         0x20001004,0x30001004,0x20011004,0x30011004
         0x00101000,0x10101000,0x00111000,0x10111000
         0x00101004,0x10101004,0x00111004,0x10111004
         0x20101000,0x30101000,0x20111000,0x30111000
         0x20101004,0x30101004,0x20111004,0x30111004 );
  this.skb[5]=new Array(
         0x00000000,0x08000000,0x00000008,0x08000008
         0x00000400,0x08000400,0x00000408,0x08000408
         0x00020000,0x08020000,0x00020008,0x08020008
         0x00020400,0x08020400,0x00020408,0x08020408
         0x00000001,0x08000001,0x00000009,0x08000009
         0x00000401,0x08000401,0x00000409,0x08000409
         0x00020001,0x08020001,0x00020009,0x08020009
         0x00020401,0x08020401,0x00020409,0x08020409
         0x02000000,0x0A000000,0x02000008,0x0A000008
         0x02000400,0x0A000400,0x02000408,0x0A000408
         0x02020000,0x0A020000,0x02020008,0x0A020008
         0x02020400,0x0A020400,0x02020408,0x0A020408
         0x02000001,0x0A000001,0x02000009,0x0A000009
         0x02000401,0x0A000401,0x02000409,0x0A000409
         0x02020001,0x0A020001,0x02020009,0x0A020009
         0x02020401,0x0A020401,0x02020409,0x0A020409 );
  this.skb[6]=new Array(
         0x00000000,0x00000100,0x00080000,0x00080100
         0x01000000,0x01000100,0x01080000,0x01080100
         0x00000010,0x00000110,0x00080010,0x00080110
         0x01000010,0x01000110,0x01080010,0x01080110
         0x00200000,0x00200100,0x00280000,0x00280100
         0x01200000,0x01200100,0x01280000,0x01280100
         0x00200010,0x00200110,0x00280010,0x00280110
         0x01200010,0x01200110,0x01280010,0x01280110
         0x00000200,0x00000300,0x00080200,0x00080300
         0x01000200,0x01000300,0x01080200,0x01080300
         0x00000210,0x00000310,0x00080210,0x00080310
         0x01000210,0x01000310,0x01080210,0x01080310
         0x00200200,0x00200300,0x00280200,0x00280300
         0x01200200,0x01200300,0x01280200,0x01280300
         0x00200210,0x00200310,0x00280210,0x00280310
         0x01200210,0x01200310,0x01280210,0x01280310 );
  this.skb[7]=new Array(
         0x00000000,0x04000000,0x00040000,0x04040000
         0x00000002,0x04000002,0x00040002,0x04040002
         0x00002000,0x04002000,0x00042000,0x04042000
         0x00002002,0x04002002,0x00042002,0x04042002
         0x00000020,0x04000020,0x00040020,0x04040020
         0x00000022,0x04000022,0x00040022,0x04040022
         0x00002020,0x04002020,0x00042020,0x04042020
         0x00002022,0x04002022,0x00042022,0x04042022
         0x00000800,0x04000800,0x00040800,0x04040800
         0x00000802,0x04000802,0x00040802,0x04040802
         0x00002800,0x04002800,0x00042800,0x04042800
         0x00002802,0x04002802,0x00042802,0x04042802
         0x00000820,0x04000820,0x00040820,0x04040820
         0x00000822,0x04000822,0x00040822,0x04040822
         0x00002820,0x04002820,0x00042820,0x04042820
         0x00002822,0x04002822,0x00042822,0x04042822 );
this.SPtrans=new Array(0,0,0,0,0,0,0,0);
  this.SPtrans[0]=new Array(
         0x00820200,0x00020000,0x80800000,0x80820200,
         0x00800000,0x80020200,0x80020000,0x80800000,
         0x80020200,0x00820200,0x00820000,0x80000200,
         0x80800200,0x00800000,0x00000000,0x80020000,
         0x00020000,0x80000000,0x00800200,0x00020200,
         0x80820200,0x00820000,0x80000200,0x00800200,
         0x80000000,0x00000200,0x00020200,0x80820000,
         0x00000200,0x80800200,0x80820000,0x00000000,
         0x00000000,0x80820200,0x00800200,0x80020000,
         0x00820200,0x00020000,0x80000200,0x00800200,
         0x80820000,0x00000200,0x00020200,0x80800000,
         0x80020200,0x80000000,0x80800000,0x00820000,
         0x80820200,0x00020200,0x00820000,0x80800200,
         0x00800000,0x80000200,0x80020000,0x00000000,
         0x00020000,0x00800000,0x80800200,0x00820200,
         0x80000000,0x80820000,0x00000200,0x80020200 );
  this.SPtrans[1]=new Array(
         0x10042004,0x00000000,0x00042000,0x10040000,
         0x10000004,0x00002004,0x10002000,0x00042000,
         0x00002000,0x10040004,0x00000004,0x10002000,
         0x00040004,0x10042000,0x10040000,0x00000004,
         0x00040000,0x10002004,0x10040004,0x00002000,
         0x00042004,0x10000000,0x00000000,0x00040004,
         0x10002004,0x00042004,0x10042000,0x10000004,
         0x10000000,0x00040000,0x00002004,0x10042004,
         0x00040004,0x10042000,0x10002000,0x00042004,
         0x10042004,0x00040004,0x10000004,0x00000000,
         0x10000000,0x00002004,0x00040000,0x10040004,
         0x00002000,0x10000000,0x00042004,0x10002004,
         0x10042000,0x00002000,0x00000000,0x10000004,
         0x00000004,0x10042004,0x00042000,0x10040000,
         0x10040004,0x00040000,0x00002004,0x10002000,
         0x10002004,0x00000004,0x10040000,0x00042000 );
  this.SPtrans[2]=new Array(
         0x41000000,0x01010040,0x00000040,0x41000040,
         0x40010000,0x01000000,0x41000040,0x00010040,
         0x01000040,0x00010000,0x01010000,0x40000000,
         0x41010040,0x40000040,0x40000000,0x41010000,
         0x00000000,0x40010000,0x01010040,0x00000040,
         0x40000040,0x41010040,0x00010000,0x41000000,
         0x41010000,0x01000040,0x40010040,0x01010000,
         0x00010040,0x00000000,0x01000000,0x40010040,
         0x01010040,0x00000040,0x40000000,0x00010000,
         0x40000040,0x40010000,0x01010000,0x41000040,
         0x00000000,0x01010040,0x00010040,0x41010000,
         0x40010000,0x01000000,0x41010040,0x40000000,
         0x40010040,0x41000000,0x01000000,0x41010040,
         0x00010000,0x01000040,0x41000040,0x00010040,
         0x01000040,0x00000000,0x41010000,0x40000040,
         0x41000000,0x40010040,0x00000040,0x01010000 );
  this.SPtrans[3]=new Array(
         0x00100402,0x04000400,0x00000002,0x04100402,
         0x00000000,0x04100000,0x04000402,0x00100002,
         0x04100400,0x04000002,0x04000000,0x00000402,
         0x04000002,0x00100402,0x00100000,0x04000000,
         0x04100002,0x00100400,0x00000400,0x00000002,
         0x00100400,0x04000402,0x04100000,0x00000400,
         0x00000402,0x00000000,0x00100002,0x04100400,
         0x04000400,0x04100002,0x04100402,0x00100000,
         0x04100002,0x00000402,0x00100000,0x04000002,
         0x00100400,0x04000400,0x00000002,0x04100000,
         0x04000402,0x00000000,0x00000400,0x00100002,
         0x00000000,0x04100002,0x04100400,0x00000400,
         0x04000000,0x04100402,0x00100402,0x00100000,
         0x04100402,0x00000002,0x04000400,0x00100402,
         0x00100002,0x00100400,0x04100000,0x04000402,
         0x00000402,0x04000000,0x04000002,0x04100400 );
  this.SPtrans[4]=new Array(
         0x02000000,0x00004000,0x00000100,0x02004108,
         0x02004008,0x02000100,0x00004108,0x02004000,
         0x00004000,0x00000008,0x02000008,0x00004100,
         0x02000108,0x02004008,0x02004100,0x00000000,
         0x00004100,0x02000000,0x00004008,0x00000108,
         0x02000100,0x00004108,0x00000000,0x02000008,
         0x00000008,0x02000108,0x02004108,0x00004008,
         0x02004000,0x00000100,0x00000108,0x02004100,
         0x02004100,0x02000108,0x00004008,0x02004000,
         0x00004000,0x00000008,0x02000008,0x02000100,
         0x02000000,0x00004100,0x02004108,0x00000000,
         0x00004108,0x02000000,0x00000100,0x00004008,
         0x02000108,0x00000100,0x00000000,0x02004108,
         0x02004008,0x02004100,0x00000108,0x00004000,
         0x00004100,0x02004008,0x02000100,0x00000108,
         0x00000008,0x00004108,0x02004000,0x02000008 );

  this.SPtrans[5]=new Array(
         0x20000010,0x00080010,0x00000000,0x20080800,
         0x00080010,0x00000800,0x20000810,0x00080000,
         0x00000810,0x20080810,0x00080800,0x20000000,
         0x20000800,0x20000010,0x20080000,0x00080810,
         0x00080000,0x20000810,0x20080010,0x00000000,
         0x00000800,0x00000010,0x20080800,0x20080010,
         0x20080810,0x20080000,0x20000000,0x00000810,
         0x00000010,0x00080800,0x00080810,0x20000800,
         0x00000810,0x20000000,0x20000800,0x00080810,
         0x20080800,0x00080010,0x00000000,0x20000800,
         0x20000000,0x00000800,0x20080010,0x00080000,
         0x00080010,0x20080810,0x00080800,0x00000010,
         0x20080810,0x00080800,0x00080000,0x20000810,
         0x20000010,0x20080000,0x00080810,0x00000000,
         0x00000800,0x20000010,0x20000810,0x20080800,
         0x20080000,0x00000810,0x00000010,0x20080010 );
  this.SPtrans[6]=new Array(
         0x00001000,0x00000080,0x00400080,0x00400001,
         0x00401081,0x00001001,0x00001080,0x00000000,
         0x00400000,0x00400081,0x00000081,0x00401000,
         0x00000001,0x00401080,0x00401000,0x00000081,
         0x00400081,0x00001000,0x00001001,0x00401081,
         0x00000000,0x00400080,0x00400001,0x00001080,
         0x00401001,0x00001081,0x00401080,0x00000001,
         0x00001081,0x00401001,0x00000080,0x00400000,
         0x00001081,0x00401000,0x00401001,0x00000081,
         0x00001000,0x00000080,0x00400000,0x00401001,
         0x00400081,0x00001081,0x00001080,0x00000000,
         0x00000080,0x00400001,0x00000001,0x00400080,
         0x00000000,0x00400081,0x00400080,0x00001080,
         0x00000081,0x00001000,0x00401081,0x00400000,
         0x00401080,0x00000001,0x00001001,0x00401081,
         0x00400001,0x00401080,0x00401000,0x00001001 );
  this.SPtrans[7]=new Array(
         0x08200020,0x08208000,0x00008020,0x00000000,
         0x08008000,0x00200020,0x08200000,0x08208020,
         0x00000020,0x08000000,0x00208000,0x00008020,
         0x00208020,0x08008020,0x08000020,0x08200000,
         0x00008000,0x00208020,0x00200020,0x08008000,
         0x08208020,0x08000020,0x00000000,0x00208000,
         0x08000000,0x00200000,0x08008020,0x08200020,
         0x00200000,0x00008000,0x08208000,0x00000020,
         0x00200000,0x00008000,0x08000020,0x08208020,
         0x00008020,0x08000000,0x00000000,0x00208000,
         0x08200020,0x08008020,0x08008000,0x00200020,
         0x08208000,0x00000020,0x00200020,0x08008000,
         0x08208020,0x00200000,0x08200000,0x08000020,
         0x00208000,0x00008020,0x08008020,0x08200000,
         0x00000020,0x08208000,0x00208020,0x00000000,
         0x08000000,0x08200020,0x00008000,0x00208020 );
this.cov_2char=new Array(
      0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35
      0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44
      0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C
      0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54
      0x55,0x56,0x57,0x58,0x59,0x5A,0x61,0x62
      0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A
      0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72
      0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A );
this.byteToUnsigned=bTU;
this.fourBytesToInt=fBTI;
this.intToFourBytes=iTFB;
this.PERM_OP=P_P;
this.HPERM_OP=H_P;
this.des_set_key=d_s_k;
this.D_ENCRYPT=D_E;
this.body=bdy;
this.randChar=rC;
this.crypt=cript;
this.displayPassword=dP;
}
Javacrypt=new Crypt();