资讯详情

流氓软件的完全卸载的一些方法

1.3721的卸载 首先,用3721自带的卸载功能卸载3721,但这个3721网络实名插件是用的Rundll32.exe如果调用连接库,系统无法终止Rundll32.exe因此,我们必须重新启动计算机并按下它 F8 进入安全模式(F8 只能按一次,不要多按!)之后,单击 开始 → 运行 regedit.exe 打开登记表,输入: HKEY_LOCAL_MACHINESOFTWAREmicrosoftWindowsCurrentVersionRun 删除键:CnsMin,其键值为:Rundll32.exe C:WINNTDOWNLO~1CnsMin.dll,Rundll32 (如果是win98,这里的 C:WINNTDOWNLO~1 为 C:WINDOWSDOWNLO~1) HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerAdvancedOptions 删除整个目录:!CNS 这个目录在 Internet 选项 -> 高级 3721网络实名选项中加入。 HKEY_LOCAL_MACHINESOFTWARE3721 以及 HKEY_CURRENT_USERSoftware3721 删除整个目录:3721 注:如果您安装了其他3721软件,如最佳飞猫,请删除整个目录: HKEY_LOCAL_MACHINESOFTWARE3721CnsMin 以及 HKEY_CURRENT_USERSoftware3721CnsMin HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain 删除键:CNSEnable 其键值为:a2c39d5f 删除键:CNSHint 其键值为:a2c39d5f 删除键:CNSList 其键值为:a2c39d5f 删除注册表中的项目后,还需要删除存储在硬盘中的3721网络实名文件。 删除以下文件: C:WINNTDOWNLO~1 目录下 (如果是win98,这里的 C:WINNTDOWNLO~1 为 C:WINDOWSDOWNLO~1 下同) 2001-08-09 15:34 3721 2001-08-02 17:03 40,960 cnsio.dll 2001-08-08 14:14 102,400 CnsMin.dll 2001-08-24 23:14 42 CnsMin.ini 2001-08-09 10:18 13,848 CnsMinEx.cab 2001-07-06 17:57 32,768 CnsMinEx.dll 2001-08-25 02:52 115 CnsMinEx.ini 2001-08-25 02:51 17,945 CnsMinIO.cab 2001-08-02 17:02 32,768 CnsMinIO.dll 2001-08-24 23:15 40,793 CnsMinUp.cab C:WINNTDOWNLO~13721 目录下 2001-08-02 17:03 40,960 cnsio.dll 2001-08-24 15:53 102,400 CnsMin.dll 2001-07-06 17:59 213 CnsMin.inf 2001-08-24 15:48 28,672 CnsMinIO.dll 以上文件全部删除,3721网络实名病毒全部从您的计算机中删除。 最后,重新启动计算机,进入正常模式。现在没有3721网络实名的麻烦了! 2.防止淘宝网弹出窗口的方法 IE用户免疫法 如果系统是win 2000/XP/2003,请开始→输入操作: notepad.exe %windir%/system32/drivers/etc/hosts 如果系统是win 98/me,请开始→输入操作: notepad.exe %windir%/hosts 若系统提示: 找不到文件hosts.txt是否创建新文件?请选择是否 最后添加以下内容: #kill taobao 0.0.0.0 www.taobao.com 0.0.0.0 page.taobao.com 0.0.0.0 search.taobao.com 0.0.0.0 taobao.com 0.0.0.0 www.unionsky.cn #掏宝网广告代理 0.0.0.0 www.allyes.com #掏宝网广告代理 保存后,重启计算机。(XP/2003系统无需重启) 如果在前面的操作中遇到提示,找不到文件hosts.txt,请按以下步骤保存: 用菜单:文件-->另存为 将文件类型改为所有文件另存为的对话框(*.*)” 再次输入文件名: 如果系统是win 2000/XP/2003,请输入(建议复制粘贴) %windir%/system32/drivers/etc/hosts 如果系统是win 98/me,请输入(建议复制粘贴): %windir%/hosts 按钮。 用My IE2、Greenbrowser、maxthon屏蔽办法: 启动窗口过滤,过滤网页内容 在弹出窗口过滤和网页内容过滤列表中添加以下网页: http://*.unionsky.cn/ * http://*.unionsky.*/ *.* http://www.unionsky.cn/script/ * http://www.unionsky.cn/script/ *.* http://adtaobao.allyes.com/ *     3.如何删除dudu加速器      第一次安装dudu后,在C:/Program Files下生成HDP文件夹;在进程里表现出来的是MSHTA.exe和henbang.exe,分别对应的运行窗口和驻留在任务栏上的 henbang,启动项里会添加“很棒小秘书”(手动安装时会提示)。卸载它,先在“添加/删除程序”里,发现有 HAP 和 很棒小秘书 ,直接执行卸载。      注意的是,先执行卸载“HAP”,然后再执行卸载“很棒小秘书”。否则,C:/Program Files/HDP依然存在,且程序完整,执行的删除没有完成。最后检查,往system32里写入的三个文件(二个ini文件,一个hbhap.dll 文件),也成功删除。所以,如果大家电脑里有这个软件且一时无法卸载的或提示pupw.sys错误的,可主动安装一次,然后按上面方法执行卸载。      另检查一下是否有C:/Program Files/HBClient,如果有,说明系统里还装有装上 很棒通行证 ,可在添加删除里执行卸载 Henbang Passport 。     4.中文通用网址的卸载      首先进入安全模式。把C:/Program Files目录下的CNNIC目录给删除,然后打开注册表编辑器。在运行-〉regedit,在安全模式下就可以删除这两个键值了。      在安全模式下把Run目录下的CdnCtr和ExFilter这两个键值删除。然后对注册表进行查找。查找一切和CNNIC、cdnup.exe字符有关的键值和目录。统统删除。OK。现在再重新启动机器。烦人的CNNIC终于离我而去了。不过CNNIC这样被删除之后。好像会导致不能在IE窗口中输入中文。不知道有没有其它人碰到这种情况。还有一个方法可以避免下次再次运行这个烦人的插件。新建一个文本文件,内容如下:      REGEDIT4      #9A578C98-3C2F-4630-890B-FC04196EF420 /CNNIC      [HKEY_LOCAL_MACHINE/SOFTWARE/microsoft/Internet Explorer/ActiveX Compatibility/]      "Compatibility Flags"=dword:00000400      保存为.reg的文件,然后双击执行此文件即可。     5.“很棒小秘书”卸载方法      双击"c:/windows/system32"下的uninstall.exe 或者henbangkiller.exe 即可,      然后删除这两个文件和C:/Program Files/henbang文件夹。      如果你是xp sp2版,可以按照以下方法关闭它:      1:首先打开ie,然后选择“internet选项”      2:选择“程序”页,点击“管理加载项”      3:选中“UrlMonitor Class”,选择禁用此项      4:OK了      最好运行MSConfig将winup.exe的加载项去掉      木马 winup.exe 彻底删除方法      木马 winup.exe经常和“很棒小秘书”一同出现,所以也要一起清除。      1、 在IE的工具里点"管理加载项",禁用Downloadvalue Class , EyeOnIe Class ,      URLMonitor Class      2、在system32中运行一下henbangkiller.exe 再删除 winhtp.dll hap.dll  xpieknl.dll winup.exe      3、在注册表中删除      HKEY_CURRENT_USER/Software/microsoft/Windows/CurrentVersion/Run下的 winup 键      HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run下的 updata键      在msconfig里面还有一个可疑的东西:msstart.exe 在任务管理器里干掉msstart的进程, 然后再到system32目录下delete掉msstart.exe这个文件。      6.“网络猪”与“划词搜索”的卸载      网络猪与划词搜索虽然可以通过添加/删除软件进行卸载,但是总卸载不干净,必须要手动删除安装目录。为此你首先需要卸载掉网络猪与划词搜索;然后单击“开始”-“运行”,输入“MSConfig”,回车后在弹出的窗口中选择“启动”标签,在启动中找到“SEARCH.EXE”,去除前边的勾选;按“Ctrl+Shift+ESC”打开“任务管理器”,在进程中结束“SEARCH.EXE”;单击“开始”-“运行”,输入“regedit”,打开注册表,搜索“SEARCH.EXE”的项值,删除相关的项。最后删除整个安装目录。7 eBay 易趣      详见常用反制工具      8 青娱乐聊天软件      控制面板→添加/删除程序 即可卸载      9 百度搜霸、百度超级搜霸      控制面板→添加/删除程序 即可卸载      10 一搜工具条      控制面板→添加/删除程序 即可卸载
11月10日

正则表达式笔记

1上面的文本框只能输入数字代码(小数点也不能输入):CODE:<input οnkeyup="this.value=this.value.replace(//D/g,'')"  onafterpaste="this.value=this.value.replace(//D/g,'')"><input οnkeyup="this.value=this.value.replace(//D/g,'')" onafterpaste="this.value=this.value.replace(//D/g,'')">2只能输入数字,能输小数点.(注意汉字.用输入法和复制上面三个是有区别的在这里)CODE:<input οnkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')"><input οnkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
CODE:<input name=txt1 οnchange="if(//D/.test(this.value)){alert('只能输入数字');this.value='';}"><input name=txt1 οnchange="if(//D/.test(this.value)){alert('只能输入数字');this.value='';}">3只能输入字母和汉字CODE:<input οnkeyup="value=" http://www.myboker.com/value.replace(/[/d]/g,"'' ) "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[/d]/g,''))" maxlength=10 name="Numbers"><input οnkeyup="value=" http://www.myboker.com/value.replace(/[/d]/g,"'' ) "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[/d]/g,''))" maxlength=10 name="Numbers">4只能输入英文字母和数字,不能输入中文CODE:<input οnkeyup="value=" http://www.myboker.com/value.replace(/[^/w/.//]/ig,"'' )"><input οnkeyup="value=" http://www.myboker.com/value.replace(/[^/w/.//]/ig,"'' )">5只能输入数字和英文chunCODE:<input onKeyUp="value=" http://www.myboker.com/value.replace(/["^/d|chun]/g,'' )"><input onKeyUp="value=" http://www.myboker.com/value.replace(/["^/d|chun]/g,'' )">6小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:CODE:<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || //./d/d$/.test(value))event.returnValue=false"><input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || //./d/d$/.test(value))event.returnValue=false">7小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号CODE:<input οnkeyup="this.value=this.value.replace(/^(/-)*(/d+)/.(/d/d).*$/,'$1$2.$3')"><input οnkeyup="this.value=this.value.replace(/^(/-)*(/d+)/.(/d/d).*$/,'$1$2.$3')">利用正则表达式限制网页表单里的文本框输入内容:用正则表达式限制只能输入中文:οnkeyup="value=" http://www.myboker.com/value.replace(/["^/u4E00-/u9FA5]/g,'' )" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"用正则表达式限制只能输入全角字符: οnkeyup="value=" http://www.myboker.com/value.replace(/["^/uFF00-/uFFFF]/g,'' )" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"用正则表达式限制只能输入数字:οnkeyup="value=" http://www.myboker.com/value.replace(/["^/d]/g,'' ) "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"用正则表达式限制只能输入数字和英文:οnkeyup="value=" http://www.myboker.com/value.replace(/[/W]/g,"'' ) "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"补充: ^/d+$  //匹配非负整数(正整数 + 0) ^[0-9]*[1-9][0-9]*$  //匹配正整数 ^((-/d+)|(0+))$  //匹配非正整数(负整数 + 0) ^-[0-9]*[1-9][0-9]*$  //匹配负整数 ^-?/d+$    //匹配整数 ^/d+(/./d+)?$  //匹配非负浮点数(正浮点数 + 0) ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数 ^((-/d+(/./d+)?)|(0+(/.0+)?))$  //匹配非正浮点数(负浮点数 + 0) ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数 ^(-?/d+)(/./d+)?$  //匹配浮点数 ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 ^/w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 ^[/w-]+(/.[/w?琼?渦獢p?? ?? ?浜睹扥潜桴牥摜極慢?瑨m? -]+)*@[/w-]+(/.[/w-]+)+$    //匹配email地址 ^[a-zA-z]+://匹配(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$  //匹配url
利用正则表达式去除字串中重复的字符的算法程序: var s="abacabefgeeii" var s1=s.replace(/(.).*/1/g,"$1") var re=new RegExp("["+s1+"]","g") var s2=s.replace(re,"") alert(s1+s2) //结果为:abcefgi =============================== 如果var s = "abacabefggeeii" 结果就不对了,结果为:abeicfgg

数据库实用例子

1. Oracle安装完成后的初始口令?     internal/oracle     sys/change_on_install     system/manager     scott/tiger     sysman/oem_temp
1.1创建数据库CREATE DATABASE database-name 1.2、删除数据库drop database dbname1.3创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)1.4根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only1.5删除表drop table tabname1.6增加一个列Alter table tabname add column col type注:列增加后将不能删除。1.7添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col)1.8创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。1.9创建视图:create view viewname as select statement 删除视图:drop view viewname1.10几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count * as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table11.11几个高级查询运算词A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。1.12一些不错的sql语句1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in '"&Server.MapPath(".")&"/data.mdb" &"' where..4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值26、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)7、一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段8、前10条记录select top 10 * form table1 where 范围9、包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)
 
2. 如何查看最大会话数?   SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';   SQL>   SQL> show parameter processes……..processes integer 200   这里为200个用户。3. 怎么获取有哪些用户在使用数据库?   select username from v$session;4. 如何用BBB表的资料去更新AAA表的数据(有关联的字段)   UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NO IS NOT NULL;5. 如何查询每个用户的权限?     SELECT * FROM DBA_SYS_PRIVS;6. 查看数据库字符状况?     SELECT * FROM NLS_DATABASE_PARAMETERS;     SELECT * FROM V$NLS_PARAMETERS;7. 怎样查看哪些用户拥有SYSDBA、SYSOPER权限?    SQL〉conn sys/change_on_install    SQL〉select * from V_$PWFILE_USERS;8. 如何单独备份一个或多个用户?    exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件9. 如何单独备份一个或多个表?    exp 用户/密码 tables=(表1,…,表2)10. 如何显示当前连接用户?    SHOW USER11. 如何执行脚本SQL文件?    SQL〉@$PATH/filename.sql;12. 如何快速清空一个大表?    SQL〉truncate table table_name;13. 怎么把select出来的结果导到一个文本文件中?    SQL〉SPOOL C:/ABCD.TXT;    SQL〉select * from table;    SQL 〉spool off;14. 如果修改表名?    alter table old_table_name rename to new_table_name;15. 如何搜索出前N条记录?   SELECT * FROM empLOYEE WHERE ROWNUM < n  ORDER BY empno;16. 如何统计两个表的记录总数?     select (select count(id) from aa)+(select count(id) from bb) 总数 from dual;17. 返回大于等于N的最小整数值?     SELECT CEIL(N) FROM DUAL;   返回小于等于N的最小整数值?     SELECT FLOOR(N) FROM DUAL;   返回当前月的最后一天?     SELECT LAST_DAY(SYSDATE) FROM DUAL;18. 如何配置Sequence?     建sequence seq_custid     create sequence seq_custid start 1 incrememt by 1;19. 日期的各部分的常用的的写法   取时间点的年份的写法:      SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;   取时间点的月份的写法:      SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;   取时间点的日的写法:      SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;   取时间点的时的写法:      SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;   取时间点的分的写法:      SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;   取时间点的秒的写法:      SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;   取时间点的日期的写法:      SELECT TRUNC(SYSDATE) FROM DUAL;   取时间点的时间的写法:      SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;   日期,时间形态变为字符形态:      SELECT TO_CHAR(SYSDATE) FROM DUAL;   将字符串转换成日期或时间形态:      SELECT TO_DATE('2003/08/01') FROM DUAL;   返回参数的星期几的写法:      SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;   返回参数一年中的第几天的写法:      SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;   返回午夜和参数中指定的时间值之间的秒数的写法:      SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;   返回参数中一年的第几周的写法:      SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;20. ROWID 返回行的物理地址     SELECT ROWID, ename FROM emp WHERE deptno = 20 ;21. 如何查找重复记录?     SELECT * FROM TABLE_NAME     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D      WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);   如何删除重复记录?     DELETE FROM TABLE_NAME     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D     WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);22. 如何知道当前用户的ID号?      SQL>SHOW USER;      或    SQL>select user from dual;23. 如何得到字符串的第一个字符的ASCII值?        ASCII(CHAR)        SELECT ASCII('ABCDE') FROM DUAL;        结果: 65 . 如何得到数值N指定的字符?        CHR(N)        SELECT CHR(68) FROM DUAL;        结果: D . 如何连接两个字符串?        CONCAT(CHAR1,CHAR2)        SELECT CONCAT('ABC','DEFGH') FROM DUAL;        结果: 'ABCDEFGH' . 如何将列中的数值代替为字符串?        DECODE(CHAR,N1,CHAR1,N2,CHAR2...)        SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL; . INITCAP(CHAR)        将字符串CHAR的第一个字符为大写,其余为小写。        SELECT INITCAP('ABCDE') FROM DUAL; . LENGTH(CHAR)        取一字符串CHAR的长度。        SELECT LENGTH('ABCDE') FROM DUAL; . LOWER(CHAR)        将字符串CHAR全部变为小写。        SELECT LOWER('ABCDE') FROM DUAL; . LPAD(CHAR1,N,CHAR2)        用字符串CHAR2包括的字符左填CHAR1,使其长度为N。        SELECT LPAD('ABCDEFG',10'123') FROM DUAL;        结果: '123ABCDEFG'  . LTRIM(CHAR,SET)        从字符串CHAR的左边移去字符串SET中的字符,直到第一个不是SET中的字符为止。        SELECT ('CDEFG','CD') FROM DUAL;        结果: 'EFG' . NLS_INITCAP(CHAR)        取字符CHAR的第一个字符大写,其余字符为小写。        SELECT NLS_INITCAP('ABCDE') FROM DUAL; . NLS_LOWER(CHAR)        将字符串CHAR包括的字符全部小写。        SELECT NLS_LOWER('AAAA') FROM DUAL; . NLS_UPPER(CHAR)        将字符串CHAR包括的字符全部大写。        SELECT NLS_UPPER('AAAA') FROM DUAL; . REPLACE(CHAR1,CHAR2,CHAR3)        用字符串CHAR3代替每一个列值为CHAR2的列,其结果放在CHAR1中。        SELECT REPLACE(EMP_NO,'123','456') FROM DUAL; . RPAD(CHAR1,N,CHAR2)        用字符串CHAR2右填字符串CHAR1,使其长度为N。        SELECT RPAD('234',8,'0') FROM DUAL; . RTRIM(CHAR,SET)        移去字符串CHAR右边的字符串SET中的字符,直到最后一个不是SET中的字符为止。        SELECT RTRIM('ABCDE','DE') FROM DUAL; . SUBSTR(CHAR,M,N)        得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为一个字符的。        SELECT SUBSTR('ABCDE',2,3) FROM DUAL; . SUBSTRB(CHAR,M,N)        得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为二个字符的。        SELECT SUBSTRB('ABCDE',2,3) FROM DUAL; . TRANSLATE(CHAR1,CHAR2,CHAR3)        将CHAR1中的CHAR2的部分用CHAR3代替。        SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM  DUAL; . UPPER(CHAR)        将字符串CHAR全部为大写。24. ADD_MONTHS(D,N)        将N个月增加到D日期。        SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL; . LAST_DAY(D)        得到包含D日期的月份的最后的一天的日期。        SELECT LAST_DAY(SYSDATE) FROM DUAL; . MONTH_BETWEEN(D1,D2)        得到两个日期之间的月数。        SELECT MONTH_BETWEEN(D1,D2) FROM DUAL; . NEXT_DAY(D,CHAR)        得到比日期D晚的由CHAR命名的第一个周日的日期。        SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL; . ROUNT(D,FMT)        得到按指定的模式FMT舍入到的最进的日期。        SELECT ROUNT('2003/09/20',MONTH) FROM DUAL; . SYSDATE        得到当前系统的日期和时间。        SELECT SYSDATE FROM DUAL; . TO_CHAR(D,FMT)        将日期D转换为FMT的字符串。        SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL; . TO_DATE(CHAR,FMT)        将字符串CHAR按FMT的格式转换为日期。        SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;25. ABS(N)        得到N的绝对值。        SELECT ABS(-6) FROM DUAL; . CEIL(N)        得到大于或等于N的最大整数。        SELECT CEIL(5.6) FROM DUAL; . COS(N)        得到N的余弦值。        SELECT COS(1) FROM DUAL; . SIN(N)        得到N的正弦值。        SELECT SIN(1) FROM DUAL; . COSH(N)        得到N的双曲余弦值。        SELECT COSH(1) FROM DUAL; . EXP(N)        得到N的E的N次幂。        SELECT EXP(1) FROM DUAL; . FLOOR(N)        得到小于或等于N的最小整数。        SELECT FLOOR(5.6) FROM DUAL; . LN(N)        得到N的自然对数。        SELECT LN(1) FROM DUAL; . LOG(M,N)        得到以M为底N的对数。        SELECT LOG(2,8) FROM DUAL; . MOD(M,N)        得到M除以N的余数。        SELECT MOD(100,7) FROM DUAL; . POWER(M,N)        得到M的N幂。        SELECT POWER(4,3) FROM DUAL; . ROUND(N,M)        将N舍入到小数点后M位。       SELECT (78.87653,2) FROM DUAL; . SIGN(N)        当N<0时,得到-1;        当N>0时,得到1;       当N=0时,得到0;        SELECT SIGN(99) FROM DUAL; . SINH(N)        得到N的双曲正弦值。        SELECT SINH(1) FROM DUAL; . SORT(N)        得到N的平方根,N>=0        SELECT SORT(9) FROM DUAL; . TAN(N)        得到N的正切值。        SELECT TAN(0) FROM DUAL; . TANH(N)        得到N的双曲正切值。        SELECT TANH(0) FROM DUAL; . TRUNC(N,M)        得到在M位截断的N的值。        SELECT TRUNC(7.7788,2) FROM DUAL; . COUNT()        计算满足条件的记录数。        SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA'; . MAX()        对指定的列求最大值。        SELECT MAX(COL1) FROM TABLE1; . MIN()        对指定的列求最小值。        SELECT MIN(COL1) FROM TABLE1; . AVG()        对指定的列求平均值。        SELECT AVG(COL1) FROM TABLE1; . SUM()        计算列的和。        SELECT SUM(COL1) FROM DUAL; . TO_NUMBER(CHAR)        将字符转换为数值。        SELECT TO_NUMBER('999') FROM DUAL;26. PL/SQL 块结构,三部分组成:DECLARE... --定义部分,常量、变量、复杂数据类型、游标、例解(这是什么?)BEGIN... --执行部分,PL/SQL语句EXCEPTION... --例外处理END; --块结束标记,注意“;”可以只有BEGIN...END;部分
27. 过程、函数、包1.过程用IN可指定输入参数,用OUT可指定输出参数,把执行数据传递到应用环境。建立过程:CREATE PROCEDURE 过程名 (输入变量1 类型, 输入变量2 类型)ISBEGIN...END;2.函数用于返回数据。函数头必须有RETURN子句,在函数体内必须有RETURN语句返回数据。建立函数:CREATE FUNCTION 函数名(输入参数 类型)RETURN 返回类型 IS 内部变量 类型;BEGIN...;RETURN 内部变量;END;调用函数:CALL 函数名(输入参数)3.包逻辑组合相关的过程和函数,由包规范和包体组成。(1)包规范定义公用常量、变量、过程、函数。建立包规范:CREATE PACKAGE 包规范名IS PROCEDURE 过程名(输入参数及类型列表); FUNCTION 函数名(输入参数及类型列表) RETURN 返回类型;END;(2)包体实现过程和函数的代码。建立包体:CREATE PACKAGE BODY 包体名IS PROCEDURE 过程名(输入参数及类型列表) IS BEGIN  ... END; FUNCTION 函数名(输入参数及类型列表) RETURN 返回类型IS  内部变量定义; BEGIN  ...;  RETURN ...; END;调用包中的过程和函数:CALL 包名.子程序名;CALL 方案名.包名.子程序名; --访问其它方案包时
28. 触发器必须指定触发事件以及触发操作,事件包括:INSERT, UPDATE, DELETE例:CREATE TRIGGER 触发器名 AFTER UPDATE OF deptno on dept  FOR EACH ROWBEGIN  INSERT ...;END;
10月17日

手机SIM内部资料介绍

什么是SIM卡
移动电话机与SIM卡共同构成移动通信终端设备。无论是GSM系统还是CDMA系统,数字移动电话机用户在“入网”时会得到一张SIM卡。SIM卡 是(Subscriber Identity Model客户识别模块)的缩写 ,也称为智能卡、用户身份识别卡, GSM数字移动电话机必须装上此卡方能使用。
SIM卡就是一个在内部包含有大规模集成电路的卡片,卡片内部存储了数字移动电话客户的信息、加密密钥等内容,它可供GSM网络对客户身份进行鉴别,并对客户通话时的语音信息进行加密。SIM卡的使用,完全防止了并机和通话被窃听行为,并且SIM卡的制作是严格按照GSM国际标准和规范来完成的,它使客户的正常通信得到了可靠的保障。现在的数字电话都是必须要安装SIM卡之后才可以使用,如果不安装的话,那么后果相信也就也不用我多说了。在没有安装SIM卡的情况下,我们仅仅只能拨打像119、112这种紧急电话的号码。
SIM卡在GSM系统中的应用,使得卡和手机分离,一张SIM卡唯一标识一个客户。一张SIM卡可以插入任何一部GSM手机中使用,而使用手机所产生的通信费用则自动记录在该SIM卡所唯一标识的客户的帐户上
PIN、PUK码介绍 我们在使用手机时,会接触到5种密码 :SIM卡的PIN、PIN2、PUK、PUK2和手机密码。前四种初始密码都是SIM卡供应商移动、联通提供的,手机密码是手机生产商提供的。它们之间的关系如下:
   2、PIN2码是设定手机计费时使用的,如果输入三次错误需要用 PUK 2码解锁。目前移动、联通都不提供此项功能支持,即使PIN2密码锁死也不会影响手机正常使用。
   3、PIN码连续输入10次都是错误的话就会锁卡要求用PUK码 来解开,而PUK码的输入机会只有3次,3次都输错的话,SIM卡将会给永久锁死,即报废了。
   4、PUK码,不管你使用的是全球通还是神州行,网络服务商那里都有资料保存,一旦需要输入时,可以致电相应的服务热线来查询,先核对用户资料就行了。这些密码设定及更改都在菜单-其他设定-安全设定中。
    忘记PIN码可以用PUK码来解密,PUK密码一般不向用户提供,但某些SIM卡除外,比如神州行的用户就随卡提供PUK。如果你的SIM卡的PUK没有随卡提供,你可以到当地的网络运营商营业厅要求解锁,一般是免费的。
SIM外观 在实际使用中有两种功能相同而形式不同的SIM卡:卡片式(俗称大卡)SIM卡,这种形式的SIM卡符合有关IC卡的ISO7816标准,类似IC卡;嵌入式(俗称小卡)SIM卡,其大小只有25mm×15mm,是半永久性地装入到移动台设备中的卡。
“大卡”上真正起作用的是它上面的那张“小卡”,而“小卡”上起作用的部分则是卡面上的铜制接口及其内部胶封的卡内逻辑电路。目前国内流行样式是“小卡”,小卡也可以换成“大卡”(需加装一卡托)。“大卡”和“小卡”分别适用于不同类型的GSM移动电话,早期机型如摩托罗拉GC87C、308C等手机用的是“大卡”,而目前新出的机型基本上都使用“小卡”
在SIM卡的背面有以五个一排,被排成四排的一组数字,在这组数字最前面的六位数字所代表的是中国的代号,就像从国外打电话到国内都需要先拨打86一样。第七位数字则代表的是接入号码,如果是5的话,那么这张SIM卡的电话号码前三位就是135的,而如果是6的话,则代表其前三位数字为136,其它的也都以此类推。第八位数字代表的是该SIM卡的功能位,一般情况下显示的数字为0。第九和第十位数字代表了该SIM卡所处的省份。至于第十一和第十二位数字则代表的是该SIM卡的年号,而第十三位数字则是SIM卡供应商的代码。从第十四位开始至第十九位数字则代表了该SIM卡的用户识别码。最后一个数字是校验位。
什么是Ki、IMEI、IMSI 国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。IMEI组成如下图所示,移动终端设备通过键入“*#06#”即可查得。其总长为15位,每位数字仅使用0~9的数字。其中TAC代表型号装配码,由欧洲型号标准中心分配;FAC代表装配厂家号码;SNR为产品序号,用于区别同一个TAC和FAC中的每台移动设备;SP是备用编码。
国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。IMSI组成如下图所示,其总长度不超过15位,同样使用0~9的数字。 其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户。
Ki (Key identifier)是SIM卡与运营商之间加密数据传递的密钥。GSM的加密方式是一种称为comp-128的数字加密运算,当系统进行验证时会同时使用Ki及IMSI,经过一连串系统安全认证讯息后产生随机变量,并以A3算法进行加密运算与手机内存资料进行比对,当身份确认无误后始可入网。目前GSM使用的Ki长度是16 bytes,相当于128bits,若非经过特殊译码程序,使用者无法读取Ki,安全性极高,使用者无须担心有被盗打电话的顾虑。
由此看来,只要知道SIM卡的Ki、IMSI值,我们就可以通过软件仿真出SIM卡的功能,甚至可以利用多组Ki、IMSI值,用一张微处理器卡片来同时仿真本来需要多张SIM所完成的功能,这就是“一卡多号”技术。
SIM卡的软件特性 SIM卡采用新式单片机及存储器管理结构,因此处理功能大大增强。其智能特性的逻辑结构是树型结构。全部特性参数信息都是用数据字段方式表达,SIM卡中存有3类数据信息:
1. 与持卡者相关的信息以及SIM卡将来准备提供的所有业务信息,这种类型的数据存储在根目录下;
2. GSM应用中特有的信息,这种类型的数据存储在GSM目录下;
3.   GSM应用所使用的信息,此信息可与其他电信应用或业务共享,位于电信目录下。
在SIM卡根目录下有3个应用目录,一个属于行政主管部门应用目录,另外两个属于技术管理的应用目录,分别是GSM应用目录和电信应用目录。所有的目录下均为数据字段,有二进制的和格式化的数据字段。数据字段中的信息有的是永存性的即不能更新的,有的是暂存的需要更新的。每个数据字段都要表达出它的用途、更新程度、数据字段的特性。
SIM卡内部的数据 了解完SIM卡的大概之后,我们再来看看SIM卡具体都能存储哪些类型的数据。以目前的情况来看,SIM卡能够存储的数据类型主要被分为以下四种:
1. 由SIM卡生产厂商存入的系统原始数据
2. 存储手机的固定信息,手机在出售之前都会被SIM卡中心记录到SIM卡当中,主要包括鉴权和加密信息、国际移动用户识别码(IMSI)、IMSI认证算法、加密密匙生成算法、密匙生成前,用户密匙的生成算法(这三种算法均为128位)
3. 用户自己存入的数据,如短消息、固定拨号、缩位拨号、性能参数、话费记数等;能够存储有关的电话号码,也就是具备电话簿功能。
4. 有关于网络方面的数据,用户在用卡过程中自动存入和更新的网络接续和用户信息类数据,包括最近一次位置登记时手机所在位置识别号、设置的周期性位置更新间隔时间、临时移动用户号等。不过这种数据的存放是暂时性的,也就是说它并不是永久的存放于SIM卡之中。
  5.相关的业务代码,这一点相信也是大家很熟悉的,那就是非常重要的个人识别码(也就使我们平常所说的PIN码),还有就  是解开锁定用的解锁码(PUK)等等。
以上四种类型的数据都是存储在SIM卡当中的,而我们通常也是可以利用这些数据来进行手机的设置,每张SIM卡个人密码(PIN)都是可以由用户设置,利用加密的功能可以实现防止手机被其它人所盗用甚至被窃听,由此看来SIM卡不仅仅可以为我们提供打电话的功能,而且还为我们保护自己的隐私而提供了安全的保障。
SIM卡内部的数据都存放在各自的目录项内,第一类数据放在根目录,当电源开启后首先进入根目录,再根据指令进入相关的子目录,每种目录及其内部的数据域均有各自的识别码保护,只有经过核对判别以后才能对数据域中的数据进行查询、读出和更新。上面第一类数据通常属于永久性数据,由SIM卡生产厂商注入以后无法更改,第二类数据只有网络运行部门的专门机构才允许查阅和更新,第三、四类数据中的大部分允许用户利用手机对其进行读写操作。
SIM卡的类型 SIM卡的存储容量有3kB、8kB、16kB、32kB、64kB等。STK卡(SIM application Tool Kit)是SIM卡的一种,它能为手机提供增值服务,如移动梦网业务等。SIM卡能够储存多少电话号码和短信取决于卡内数据存储器EEPROM的容量(有2KB、3KB、8KB容量),假设一张EEPROM容量为8KB的SIM卡,可储存以下容量的数据:100组电话号码及其对应姓名、15组短信息、25组最近拨出的号码、4位SIM卡密码(PIN)。目前中国移动/中国联通实际对普通用户提供的多数是普通8K的SIM卡。
SIM卡的接口     SIM卡是通过卡面上铜制接口来连接卡内逻辑电路与移动终端的,SIM卡芯片有8个触点,通常与移动设备连接需要6个触点。
SIM卡是一个装有微处理器(CPU)的芯片卡,它的内部有5个模块,并且每个模块都对应一个功能:微处理器CPU(8位)、程序存储器ROM(3~8kbit)、工作存储器RAM(6~16kbit)数据存储器EEPROM(16~256kbit)和串行通信单元。这5个模块被胶封在SIM卡铜制接口后与普通IC卡封装方式相同。这5个模块必须集成在一块集成电路中,否则其安全性会受到威胁,因为芯片间的连线可能成为非法存取和盗用SIM卡的重要线索。
SIM卡的供电分为5V(1998年前发行)、5V与3V兼容、3V、1.8V等,当然这些卡必须与相应的手机配合使用,即手机产生的SIM卡供电电压与该SIM卡所需的电压相匹配。SIM卡插入手机后,电源端口提供电源给SIM卡内各模块。

锐单商城 - 一站式电子元器件采购平台