锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
銆銆鍦ㄤ紶緇熶笂錛屾垜浠湁鍑犵鏂規硶鏉ュ姞瀵嗘暟鎹祦銆傛墍鏈夎繖浜涙柟娉曢兘鍙互鐢ㄨ蔣浠跺緢瀹規槗鐨勫疄鐜幫紝浣嗘槸褰撴垜浠彧鐭ラ亾瀵嗘枃鐨勬椂鍊欙紝鏄笉瀹規槗鐮磋瘧榪欎簺鍔犲瘑綆楁硶鐨勶紙褰撳悓鏃舵湁鍘熸枃鍜屽瘑鏂囨椂錛岀牬璇戝姞瀵嗙畻娉曡櫧鐒朵篃涓嶆槸寰堝鏄擄紝浣嗗凡緇忔槸鍙兘鐨勪簡錛夈傛渶濂界殑鍔犲瘑綆楁硶瀵圭郴緇熸ц兘鍑犱箮娌℃湁褰卞搷錛屽茍涓旇繕鍙互甯︽潵鍏朵粬鍐呭湪鐨勪紭鐐廣備緥濡傦紝澶у閮界煡閬撶殑PKZIP錛屽畠鏃㈠帇緙╂暟鎹張鍔犲瘑鏁版嵁銆傚張濡傦紝DBMS鐨勪竴浜涜蔣浠跺寘鎬繪槸鍖呭惈涓浜涘姞瀵嗘柟娉曚互浣垮鍒舵枃浠惰繖涓鍔熻兘瀵逛竴浜涙晱鎰熸暟鎹槸鏃犳晥鐨勶紝鎴栬呴渶瑕佺敤鎴風殑瀵嗙爜銆傛墍鏈夎繖浜涘姞瀵嗙畻娉曢兘瑕佹湁楂樻晥鐨勫姞瀵嗗拰瑙e瘑鑳藉姏銆?
銆銆騫歌繍鐨勬槸錛屽湪鎵鏈夌殑鍔犲瘑綆楁硶涓渶綆鍗曠殑涓縐嶅氨鏄滅疆鎹㈣〃鈥濈畻娉曪紝榪欑綆楁硶涔熻兘寰堝ソ杈懼埌鍔犲瘑鐨勯渶瑕併傛瘡涓涓暟鎹錛堟繪槸涓涓瓧鑺傦級瀵瑰簲鐫鈥滅疆鎹㈣〃鈥濅腑鐨勪竴涓亸縐婚噺錛屽亸縐婚噺鎵瀵瑰簲鐨勫煎氨杈撳嚭鎴愪負鍔犲瘑鍚庣殑鏂囦歡銆傚姞瀵嗙▼搴忓拰瑙e瘑紼嬪簭閮介渶瑕佷竴涓繖鏍風殑鈥滅疆鎹㈣〃鈥濄備簨瀹炰笂錛?0x86 CPU緋誨垪灝辨湁涓涓寚浠も榅LAT鈥欏湪紜歡綰ф潵瀹屾垚榪欐牱鐨勫伐浣溿傝繖縐嶅姞瀵嗙畻娉曟瘮杈冪畝鍗曪紝鍔犲瘑瑙e瘑閫熷害閮藉緢蹇紝浣嗘槸涓鏃﹁繖涓滅疆鎹㈣〃鈥濊瀵規柟鑾峰緱錛岄偅榪欎釜鍔犲瘑鏂規灝卞畬鍏ㄨ璇嗙牬浜嗐傛洿榪涗竴姝ヨ錛岃繖縐嶅姞瀵嗙畻娉曞浜庨粦瀹㈢牬璇戞潵璁叉槸鐩稿綋鐩存帴鐨勶紝鍙鎵懼埌涓涓滅疆鎹㈣〃鈥濆氨鍙互浜嗐傝繖縐嶆柟娉曞湪璁$畻鏈哄嚭鐜頒箣鍓嶅氨宸茬粡琚箍娉涚殑浣跨敤銆?
銆銆瀵硅繖縐嶁滅疆鎹㈣〃鈥濇柟寮忕殑涓涓敼榪涘氨鏄嬌鐢?涓垨鑰呮洿澶氱殑鈥滅疆鎹㈣〃鈥濓紝榪欎簺琛ㄩ兘鏄熀浜庢暟鎹祦涓瓧鑺傜殑浣嶇疆鐨勶紝鎴栬呭熀浜庢暟鎹祦鏈韓銆傝繖鏃訛紝鐮磋瘧鍙樼殑鏇村姞鍥伴毦錛屽洜涓洪粦瀹㈠繀欏繪紜殑鍋氬嚑嬈″彉鎹€傞氳繃浣跨敤鏇村鐨勨滅疆鎹㈣〃鈥濓紝騫朵笖鎸変吉闅忔満鐨勬柟寮忎嬌鐢ㄦ瘡涓〃錛岃繖縐嶆敼榪涚殑鍔犲瘑鏂規硶宸茬粡鍙樼殑寰堥毦鐮磋瘧銆傛瘮濡傦紝鎴戜滑鍙互瀵規墍鏈夌殑鍋舵暟浣嶇疆鐨勬暟鎹嬌鐢ˋ琛紝瀵規墍鏈夌殑濂囨暟浣嶇疆浣跨敤B琛紝鍗充嬌榛戝鑾峰緱浜嗘槑鏂囧拰瀵嗘枃錛屼粬鎯崇牬璇戣繖涓姞瀵嗘柟妗堜篃鏄潪甯稿洶闅劇殑錛岄櫎闈為粦瀹㈢‘鍒囩殑鐭ラ亾鐢ㄤ簡涓ゅ紶琛ㄣ?
銆銆涓庝嬌鐢ㄢ滅疆鎹㈣〃鈥濈浉綾諱技錛屸滃彉鎹㈡暟鎹綅緗濅篃鍦ㄨ綆楁満鍔犲瘑涓嬌鐢ㄣ備絾鏄紝榪欓渶瑕佹洿澶氱殑鎵ц鏃墮棿銆備粠杈撳叆涓鍏ユ槑鏂囨斁鍒頒竴涓猙uffer涓紝鍐嶅湪buffer涓浠栦滑閲嶆帓搴忥紝鐒跺悗鎸夎繖涓『搴忓啀杈撳嚭銆傝В瀵嗙▼搴忔寜鐩稿弽鐨勯『搴忚繕鍘熸暟鎹傝繖縐嶆柟娉曟繪槸鍜屼竴浜涘埆鐨勫姞瀵嗙畻娉曟販鍚堜嬌鐢紝榪欏氨浣垮緱鐮磋瘧鍙樼殑鐗瑰埆鐨勫洶闅撅紝鍑犱箮鏈変簺涓嶅彲鑳戒簡銆備緥濡傦紝鏈夎繖鏍蜂竴涓瘝錛屽彉鎹㈣搗瀛楁瘝鐨勯『搴忥紝slient 鍙互鍙樹負listen錛屼絾鎵鏈夌殑瀛楁瘝閮芥病鏈夊彉鍖栵紝娌℃湁澧炲姞涔熸病鏈夊噺灝戯紝浣嗘槸瀛楁瘝涔嬮棿鐨勯『搴忓凡緇忓彉鍖栦簡銆?
銆銆浣嗘槸錛岃繕鏈変竴縐嶆洿濂界殑鍔犲瘑綆楁硶錛屽彧鏈夎綆楁満鍙互鍋氾紝灝辨槸瀛?瀛楄妭寰幆縐諱綅鍜孹OR鎿嶄綔銆傚鏋滄垜浠妸涓涓瓧鎴栧瓧鑺傚湪涓涓暟鎹祦鍐呭仛寰幆縐諱綅錛屼嬌鐢ㄥ涓垨鍙樺寲鐨勬柟鍚戯紙宸︾Щ鎴栧彸縐伙級錛屽氨鍙互榪呴熺殑浜х敓涓涓姞瀵嗙殑鏁版嵁嫻併傝繖縐嶆柟娉曟槸寰堝ソ鐨勶紝鐮磋瘧瀹冨氨鏇村姞鍥伴毦錛佽屼笖錛屾洿榪涗竴姝ョ殑鏄紝濡傛灉鍐嶄嬌鐢╔OR鎿嶄綔錛屾寜浣嶅仛寮傛垨鎿嶄綔錛屽氨灝變嬌鐮磋瘧瀵嗙爜鏇村姞鍥伴毦浜嗐傚鏋滃啀浣跨敤浼殢鏈虹殑鏂規硶錛岃繖娑夊強鍒拌浜х敓涓緋誨垪鐨勬暟瀛楋紝鎴戜滑鍙互浣跨敤Fibbonaci鏁板垪銆傚鏁板垪鎵浜х敓鐨勬暟鍋氭ā榪愮畻錛堜緥濡傛ā3錛夛紝寰楀埌涓涓粨鏋滐紝鐒跺悗寰幆縐諱綅榪欎釜緇撴灉鐨勬鏁幫紝灝嗕嬌鐮磋瘧嬈″瘑鐮佸彉鐨勫嚑涔庝笉鍙兘錛佷絾鏄紝浣跨敤Fibbonaci鏁板垪榪欑浼殢鏈虹殑鏂瑰紡鎵浜х敓鐨勫瘑鐮佸鎴戜滑鐨勮В瀵嗙▼搴忔潵璁叉槸闈炲父瀹規槗鐨勩?
銆銆鍦ㄤ竴浜涙儏鍐典笅錛屾垜浠兂鑳藉鐭ラ亾鏁版嵁鏄惁宸茬粡琚鏀逛簡鎴栬鐮村潖浜嗭紝榪欐椂灝遍渶瑕佷駭鐢熶竴浜涙牎楠岀爜錛屽茍涓旀妸榪欎簺鏍¢獙鐮佹彃鍏ュ埌鏁版嵁嫻佷腑銆傝繖鏍峰仛瀵規暟鎹殑闃蹭吉涓庣▼搴忔湰韜兘鏄湁濂藉鐨勩備絾鏄劅鏌撹綆楁満紼嬪簭鐨勭梾姣掓墠涓嶄細鍦ㄦ剰榪欎簺鏁版嵁鎴栫▼搴忔槸鍚﹀姞榪囧瘑錛屾槸鍚︽湁鏁板瓧絳懼悕銆傛墍浠ワ紝鍔犲瘑紼嬪簭鍦ㄦ瘡嬈oad鍒板唴瀛樿寮濮嬫墽琛屾椂錛岄兘瑕佹鏌ヤ竴涓嬫湰韜槸鍚﹁鐥呮瘨鎰熸煋錛屽涓庨渶瑕佸姞銆佽В瀵嗙殑鏂囦歡閮借鍋氳繖縐嶆鏌ワ紒寰堣嚜鐒訛紝榪欐牱涓縐嶆柟娉曚綋鍒跺簲璇ヤ繚瀵嗙殑錛屽洜涓虹梾姣掔▼搴忕殑緙栧啓鑰呭皢浼氬埄鐢ㄨ繖浜涙潵鐮村潖鍒漢鐨勭▼搴忔垨鏁版嵁銆傚洜姝わ紝鍦ㄤ竴浜涘弽鐥呮瘨鎴栨潃鐥呮瘨杞歡涓竴瀹氳浣跨敤鍔犲瘑鎶鏈?
銆銆寰幆鍐椾綑鏍¢獙鏄竴縐嶅吀鍨嬬殑鏍¢獙鏁版嵁鐨勬柟娉曘傚浜庢瘡涓涓暟鎹潡錛屽畠浣跨敤浣嶅驚鐜Щ浣嶅拰XOR鎿嶄綔鏉ヤ駭鐢熶竴涓?6浣嶆垨32浣嶇殑鏍¢獙鍜?錛岃繖浣垮緱涓㈠け涓浣嶆垨涓や釜浣嶇殑閿欒涓瀹氫細瀵艱嚧鏍¢獙鍜屽嚭閿欍傝繖縐嶆柟寮忓緢涔呬互鏉ュ氨搴旂敤浜庢枃浠剁殑浼犺緭錛屼緥濡?XMODEM-CRC銆?榪欐槸鏂規硶宸茬粡鎴愪負鏍囧噯錛岃屼笖鏈夎緇嗙殑鏂囨。銆備絾鏄紝鍩轟簬鏍囧噯CRC綆楁硶鐨勪竴縐嶄慨鏀圭畻娉曞浜庡彂鐜板姞瀵嗘暟鎹潡涓殑閿欒鍜屾枃浠舵槸鍚﹁鐥呮瘨鎰熸煋鏄緢鏈夋晥鐨勩?
銆銆浜岋紟鍩轟簬鍏挜鐨勫姞瀵嗙畻娉?
銆銆涓涓ソ鐨勫姞瀵嗙畻娉曠殑閲嶈鐗圭偣涔嬩竴鏄叿鏈夎繖縐嶈兘鍔涳細鍙互鎸囧畾涓涓瘑鐮佹垨瀵嗛挜錛屽茍鐢ㄥ畠鏉ュ姞瀵嗘槑鏂囷紝涓嶅悓鐨勫瘑鐮佹垨瀵嗛挜浜х敓涓嶅悓鐨勫瘑鏂囥傝繖鍙堝垎涓轟袱縐嶆柟寮忥細瀵圭О瀵嗛挜綆楁硶鍜岄潪瀵圭О瀵嗛挜綆楁硶銆傛墍璋撳縐板瘑閽ョ畻娉曞氨鏄姞瀵嗚В瀵嗛兘浣跨敤鐩稿悓鐨勫瘑閽ワ紝闈炲縐板瘑閽ョ畻娉曞氨鏄姞瀵嗚В瀵嗕嬌鐢ㄤ笉鍚岀殑瀵嗛挜銆傞潪甯歌憲鍚嶇殑PGP鍏挜鍔犲瘑浠ュ強RSA鍔犲瘑鏂規硶閮芥槸闈炲縐板姞瀵嗙畻娉曘傚姞瀵嗗瘑閽ワ紝鍗沖叕閽ワ紝涓庤В瀵嗗瘑閽ワ紝鍗崇閽ワ紝鏄潪甯哥殑涓嶅悓鐨勩備粠鏁板鐞嗚涓婅錛屽嚑涔庢病鏈夌湡姝d笉鍙嗙殑綆楁硶瀛樺湪銆備緥濡傦紝瀵逛簬涓涓緭鍏モ榓鈥欐墽琛屼竴涓搷浣滃緱鍒扮粨鏋溾榖鈥?閭d箞鎴戜滑鍙互鍩轟簬鈥榖鈥欙紝鍋氫竴涓浉瀵瑰簲鐨勬搷浣滐紝瀵煎嚭杈撳叆鈥榓鈥欍傚湪涓浜涙儏鍐典笅錛屽浜庢瘡涓縐嶆搷浣滐紝鎴戜滑鍙互寰楀埌涓涓‘瀹氱殑鍊鹼紝鎴栬呰鎿嶄綔娌℃湁瀹氫箟錛堟瘮濡傦紝闄ゆ暟涓?錛夈傚浜庝竴涓病鏈夊畾涔夌殑鎿嶄綔鏉ヨ錛屽熀浜庡姞瀵嗙畻娉曪紝鍙互鎴愬姛鍦伴槻姝㈡妸涓涓叕閽ュ彉鎹㈡垚涓虹閽ャ傚洜姝わ紝瑕佹兂鐮磋瘧闈炲縐板姞瀵嗙畻娉曪紝鎵懼埌閭d釜鍞竴鐨勫瘑閽ワ紝鍞竴鐨勬柟娉曞彧鑳芥槸鍙嶅鐨勮瘯楠岋紝鑰岃繖闇瑕佸ぇ閲忕殑澶勭悊鏃墮棿銆?
銆銆RSA鍔犲瘑綆楁硶浣跨敤浜嗕袱涓潪甯稿ぇ鐨勭礌鏁版潵浜х敓鍏挜鍜岀閽ャ傚嵆浣夸粠涓涓叕閽ヤ腑閫氳繃鍥犳暟鍒嗚В鍙互寰楀埌縐侀挜錛屼絾榪欎釜榪愮畻鎵鍖呭惈鐨勮綆楅噺鏄潪甯稿法澶х殑錛屼互鑷充簬鍦ㄧ幇瀹炰笂鏄笉鍙鐨勩傚姞瀵嗙畻娉曟湰韜篃鏄緢鎱㈢殑錛岃繖浣垮緱浣跨敤RSA綆楁硶鍔犲瘑澶ч噺鐨勬暟鎹彉鐨勬湁浜涗笉鍙銆傝繖灝變嬌寰椾竴浜涚幇瀹炰腑鍔犲瘑綆楁硶閮藉熀浜嶳SA鍔犲瘑綆楁硶銆侾GP綆楁硶(浠ュ強澶у鏁板熀浜嶳SA綆楁硶鐨勫姞瀵嗘柟娉?浣跨敤鍏挜鏉ュ姞瀵嗕竴涓縐板姞瀵嗙畻娉曠殑瀵嗛挜錛岀劧鍚庡啀鍒╃敤涓涓揩閫熺殑瀵圭О鍔犲瘑綆楁硶鏉ュ姞瀵嗘暟鎹傝繖涓縐扮畻娉曠殑瀵嗛挜鏄殢鏈轟駭鐢熺殑錛屾槸淇濆瘑鐨勶紝鍥犳錛屽緱鍒拌繖涓瘑閽ョ殑鍞竴鏂規硶灝辨槸浣跨敤縐侀挜鏉ヨВ瀵嗐?
銆銆鎴戜滑涓句竴涓緥瀛愶細鍋囧畾鐜板湪瑕佸姞瀵嗕竴浜涙暟鎹嬌鐢ㄥ瘑閽モ?2345鈥欍傚埄鐢≧SA鍏挜錛屼嬌鐢≧SA綆楁硶鍔犲瘑榪欎釜瀵嗛挜鈥?2345鈥欙紝騫舵妸瀹冩斁鍦ㄨ鍔犲瘑鐨勬暟鎹殑鍓嶉潰錛堝彲鑳藉悗闈㈣窡鐫涓涓垎鍓茬鎴栨枃浠墮暱搴︼紝浠ュ尯鍒嗘暟鎹拰瀵嗛挜錛夛紝鐒跺悗錛屼嬌鐢ㄥ縐板姞瀵嗙畻娉曞姞瀵嗘鏂囷紝浣跨敤鐨勫瘑閽ュ氨鏄?2345鈥欍傚綋瀵規柟鏀跺埌鏃訛紝瑙e瘑紼嬪簭鎵懼埌鍔犲瘑榪囩殑瀵嗛挜錛屽茍鍒╃敤RSA縐侀挜瑙e瘑鍑烘潵錛岀劧鍚庡啀紜畾鍑烘暟鎹殑寮濮嬩綅緗紝鍒╃敤瀵嗛挜鈥?2345鈥欐潵瑙e瘑鏁版嵁銆傝繖鏍峰氨浣垮緱涓涓彲闈犵殑緇忚繃楂樻晥鍔犲瘑鐨勬暟鎹畨鍏ㄥ湴浼犺緭鍜岃В瀵嗐?
銆銆涓浜涚畝鍗曠殑鍩轟簬RSA綆楁硶鐨勫姞瀵嗙畻娉曞彲鍦ㄤ笅闈㈢殑绔欑偣鎵懼埌錛?
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa
銆銆涓夛紟涓涓喘鏂扮殑澶氭鍔犲瘑綆楁硶
銆銆鐜板湪鍙堝嚭鐜頒簡涓縐嶆柊鐨勫姞瀵嗙畻娉曪紝鎹鏄嚑涔庝笉鍙兘琚牬璇戠殑銆傝繖涓畻娉曞湪1998騫?鏈?鏃ユ墠姝e紡鍏竷鐨勩備笅闈㈣緇嗙殑浠嬬粛榪欎釜綆楁硶:
銆銆浣跨敤涓緋誨垪鐨勬暟瀛楋紙姣斿璇?28浣嶅瘑閽ワ級錛屾潵浜х敓涓涓彲閲嶅鐨勪絾楂樺害闅忔満鍖栫殑浼殢鏈虹殑鏁板瓧鐨勫簭鍒椼備竴嬈′嬌鐢?56涓〃欏癸紝浣跨敤闅忔満鏁板簭鍒楁潵浜х敓瀵嗙爜杞〃錛屽涓嬫墍紺猴細
銆銆鎶?56涓殢鏈烘暟鏀懼湪涓涓窛闃典腑錛岀劧鍚庡浠栦滑榪涜鎺掑簭錛屼嬌鐢ㄨ繖鏍蜂竴縐嶆柟寮忥紙鎴戜滑瑕佽浣忔渶鍒濈殑浣嶇疆錛変嬌鐢ㄦ渶鍒濈殑浣嶇疆鏉ヤ駭鐢熶竴涓〃錛岄殢鎰忔帓搴忕殑琛紝琛ㄤ腑鐨勬暟瀛楀湪0鍒?55涔嬮棿銆傚鏋滀笉鏄緢鏄庣櫧濡備綍鏉ュ仛錛屽氨鍙互涓嶇瀹冦備絾鏄紝涓嬮潰涔熸彁渚涗簡涓浜涘師鐮侊紙鍦ㄤ笅闈級鏄垜浠槑鐧芥槸濡備綍鏉ュ仛鐨勩傜幇鍦紝浜х敓浜嗕竴涓叿浣撶殑256瀛楄妭鐨勮〃銆傝榪欎釜闅忔満鏁頒駭鐢熷櫒鎺ョ潃鏉ヤ駭鐢熻繖涓〃涓殑鍏朵綑鐨勬暟錛屼互鑷充簬姣忎釜琛ㄦ槸涓嶅悓鐨勩備笅涓姝ワ紝浣跨敤"shotgun technique"鎶鏈潵浜х敓瑙g爜琛ㄣ傚熀鏈笂璇達紝濡傛灉 a鏄犲皠鍒癰錛岄偅涔坆涓瀹氬彲浠ユ槧灝勫埌a錛屾墍浠[a[n]] = n.錛坣鏄竴涓湪0鍒?55涔嬮棿鐨勬暟錛夈傚湪涓涓驚鐜腑璧嬪鹼紝浣跨敤涓涓?56瀛楄妭鐨勮В鐮佽〃瀹冨搴斾簬鎴戜滑鍒氭墠鍦ㄤ笂涓姝ヤ駭鐢熺殑256瀛楄妭鐨勫姞瀵嗚〃銆?
銆銆浣跨敤榪欎釜鏂規硶錛屽凡緇忓彲浠ヤ駭鐢熻繖鏍風殑涓涓〃錛岃〃鐨勯『搴忔槸闅忔満錛屾墍浠ヤ駭鐢熻繖256涓瓧鑺傜殑闅忔満鏁頒嬌鐢ㄧ殑鏄簩嬈′吉闅忔満,浣跨敤浜嗕袱涓澶栫殑16浣嶇殑瀵嗙爜.鐜板湪錛屽凡緇忔湁浜嗕袱寮犺漿鎹㈣〃錛屽熀鏈殑鍔犲瘑瑙e瘑鏄涓嬭繖鏍峰伐浣滅殑銆傚墠涓涓瓧鑺傚瘑鏂囨槸榪欎釜256瀛楄妭鐨勮〃鐨勭儲寮曘傛垨鑰咃紝涓轟簡鎻愰珮鍔犲瘑鏁堟灉錛屽彲浠ヤ嬌鐢ㄥ浣?浣嶇殑鍊鹼紝鐢氳嚦浣跨敤鏍¢獙鍜屾垨鑰匔RC綆楁硶鏉ヤ駭鐢熺儲寮曞瓧鑺傘傚亣瀹氳繖涓〃鏄?56*256鐨勬暟緇?灝嗕細鏄笅闈㈢殑鏍峰瓙:
crypto1 = a[crypto0][value]
銆銆鍙橀噺""crypto1""鏄姞瀵嗗悗鐨勬暟鎹紝""crypto0""鏄墠涓涓姞瀵嗘暟鎹紙鎴栫潃鏄墠闈㈠嚑涓姞瀵嗘暟鎹殑涓涓嚱鏁板鹼級銆傚緢鑷劧鐨勶紝絎竴涓暟鎹渶瑕佷竴涓滅瀛愨濓紝榪欎釜鈥滅瀛愨?鏄垜浠繀欏昏浣忕殑銆傚鏋滀嬌鐢?56*256鐨勮〃錛岃繖鏍峰仛灝嗕細澧炲姞瀵嗘枃鐨勯暱搴︺傛垨鑰咃紝鍙互浣跨敤浣犱駭鐢熷嚭闅忔満鏁板簭鍒楁墍鐢ㄧ殑瀵嗙爜錛屼篃鍙兘鏄畠鐨凜RC鏍¢獙鍜屻傞『渚挎彁鍙婄殑鏄浘浣滆繃榪欐牱涓涓祴璇? 浣跨敤16涓瓧鑺傛潵浜х敓琛ㄧ殑绱㈠紩,浠?28浣嶇殑瀵嗛挜浣滀負榪?6涓瓧鑺傜殑鍒濆鐨?縐嶅瓙"銆傜劧鍚庯紝鍦ㄤ駭鐢熷嚭榪欎簺闅忔満鏁扮殑琛ㄤ箣鍚庯紝灝卞彲浠ョ敤鏉ュ姞瀵嗘暟鎹紝閫熷害杈懼埌姣忕閽?00k涓瓧鑺傘備竴瀹氳淇濊瘉鍦ㄥ姞瀵嗕笌瑙e瘑鏃墮兘浣跨敤鍔犲瘑鐨勫間綔涓鴻〃鐨勭儲寮曪紝鑰屼笖榪欎袱嬈′竴瀹氳鍖歸厤銆?
銆銆鍔犲瘑鏃舵墍浜х敓鐨勪吉闅忔満搴忓垪鏄緢闅忔剰鐨勶紝鍙互璁捐鎴愭兂瑕佺殑浠諱綍搴忓垪銆傛病鏈夊叧浜庤繖涓殢鏈哄簭鍒楃殑璇︾粏鐨勪俊鎭紝瑙e瘑瀵嗘枃鏄笉鐜板疄鐨勩備緥濡傦細涓浜汚SCII鐮佺殑搴忓垪錛屽鈥渆eeeeeee"鍙兘琚漿鍖栨垚涓浜涢殢鏈虹殑娌℃湁浠諱綍鎰忎箟鐨勪貢鐮侊紝姣忎竴涓瓧鑺傞兘渚濊禆浜庡叾鍓嶄竴涓瓧鑺傜殑瀵嗘枃錛岃屼笉鏄疄闄呯殑鍊箋傚浜庝換涓涓崟涓殑瀛楃鐨勮繖縐嶅彉鎹㈡潵璇達紝闅愯棌浜嗗姞瀵嗘暟鎹殑鏈夋晥鐨勭湡姝g殑闀垮害銆?
銆銆濡傛灉紜疄涓嶇悊瑙e浣曟潵浜х敓涓涓殢鏈烘暟搴忓垪錛屽氨鑰冭檻FIBBONACCI鏁板垪錛屼嬌鐢?涓弻瀛楋紙64浣嶏級鐨勬暟浣滀負浜х敓闅忔満鏁扮殑縐嶅瓙錛屽啀鍔犱笂絎笁涓弻瀛楁潵鍋歑OR鎿嶄綔銆?榪欎釜綆楁硶浜х敓浜嗕竴緋誨垪鐨勯殢鏈烘暟銆傜畻娉曞涓嬶細
unsigned long dw1, dw2, dw3, dwMask;
int i1;
unsigned long aRandom[256];
dw1 = {seed #1};
dw2 = {seed #2};
dwMask = {seed #3};
// this gives you 3 32-bit "seeds", or 96 bits total
for(i1=0; i1 < 256; i1++)
{
dw3 = (dw1 + dw2) ^ dwMask;
aRandom[i1] = dw3;
dw1 = dw2;
dw2 = dw3;
}
濡傛灉鎯充駭鐢熶竴緋誨垪鐨勯殢鏈烘暟瀛楋紝姣斿璇達紝鍦?鍜屽垪琛ㄤ腑鎵鏈夌殑闅忔満鏁頒箣闂寸殑涓浜涙暟錛屽氨鍙互浣跨敤涓嬮潰鐨勬柟娉曪細
int __cdecl MySortProc(void *p1, void *p2)
{
unsigned long **pp1 = (unsigned long **)p1;
unsigned long **pp2 = (unsigned long **)p2;
if(**pp1 < **pp2)
return(-1);
else if(**pp1 > *pp2)
return(1);
return(0);
}
...
int i1;
unsigned long *apRandom[256];
unsigned long aRandom[256]; // same array as before, in this case
int aResult[256]; // results go here
for(i1=0; i1 < 256; i1++)
{
apRandom[i1] = aRandom + i1;
}
// now sort it
qsort(apRandom, 256, sizeof(*apRandom), MySortProc);
// final step - offsets for pointers are placed into output array
for(i1=0; i1 < 256; i1++)
{
aResult[i1] = (int)(apRandom[i1] - aRandom);
}
...
銆銆鍙橀噺""aResult""涓殑鍊煎簲璇ユ槸涓涓帓榪囧簭鐨勫敮涓鐨勪竴緋誨垪鐨勬暣鏁扮殑鏁扮粍錛屾暣鏁扮殑鍊肩殑鑼冨洿鍧囧湪0鍒?55涔嬮棿銆傝繖鏍蜂竴涓暟緇勬槸闈炲父鏈夌敤鐨勶紝渚嬪錛氬涓涓瓧鑺傚瀛楄妭鐨勮漿鎹㈣〃錛屽氨鍙互寰堝鏄撳茍涓旈潪甯稿彲闈犵殑鏉ヤ駭鐢熶竴涓煭鐨勫瘑閽ワ紙緇忓父浣滀負涓浜涢殢鏈烘暟鐨勭瀛愶級銆傝繖鏍蜂竴涓〃榪樻湁鍏朵粬鐨勭敤澶勶紝姣斿璇達細鏉ヤ駭鐢熶竴涓殢鏈虹殑瀛楃錛岃綆楁満娓告垙涓竴涓墿浣撶殑闅忔満鐨勪綅緗瓑絳夈備笂闈㈢殑渚嬪瓙灝卞叾鏈韓鑰岃█騫舵病鏈夋瀯鎴愪竴涓姞瀵嗙畻娉曪紝鍙槸鍔犲瘑綆楁硶涓涓粍鎴愰儴鍒嗐?
銆銆浣滀負涓涓祴璇曪紝寮鍙戜簡涓涓簲鐢ㄧ▼搴忔潵嫻嬭瘯涓婇潰鎵鎻忚堪鐨勫姞瀵嗙畻娉曘傜▼搴忔湰韜兘緇忚繃浜嗗嚑嬈$殑浼樺寲鍜屼慨鏀癸紝鏉ユ彁楂橀殢鏈烘暟鐨勭湡姝g殑闅忔満鎬у拰闃叉浼氫駭鐢熶竴浜涚煭鐨勫彲閲嶅鐨勭敤浜庡姞瀵嗙殑闅忔満鏁般傜敤榪欎釜紼嬪簭鏉ュ姞瀵嗕竴涓枃浠訛紝鐮磋В榪欎釜鏂囦歡鍙兘浼氶渶瑕侀潪甯稿法澶х殑鏃墮棿浠ヨ嚦浜庡湪鐜板疄涓婃槸涓嶅彲鑳界殑銆?
鍥涳紟緇撹錛?
銆銆鐢變簬鍦ㄧ幇瀹炵敓媧諱腑錛屾垜浠紜繚涓浜涙晱鎰熺殑鏁版嵁鍙兘琚湁鐩稿簲鏉冮檺鐨勪漢鐪嬪埌錛岃紜繚淇℃伅鍦ㄤ紶杈撶殑榪囩▼涓笉浼氳綃℃敼錛屾埅鍙栵紝榪欏氨闇瑕佸緢澶氱殑瀹夊叏緋葷粺澶ч噺鐨勫簲鐢ㄤ簬鏀垮簻銆佸ぇ鍏徃浠ュ強涓漢緋葷粺銆傛暟鎹姞瀵嗘槸鑲畾鍙互琚牬瑙g殑錛屼絾鎴戜滑鎵鎯寵鐨勬槸涓涓壒瀹氭椂鏈熺殑瀹夊叏錛屼篃灝辨槸璇達紝瀵嗘枃鐨勭牬瑙e簲璇ユ槸瓚沖鐨勫洶闅撅紝鍦ㄧ幇瀹炰笂鏄笉鍙兘鐨勶紝灝ゅ叾鏄煭鏃墮棿鍐呫?
]]>
聽 DES鏄疍ata Encryption Standard錛堟暟鎹姞瀵嗘爣鍑嗭級鐨勭緝鍐欍傚畠鏄敱IBM鍏徃鐮斿埗鐨勪竴縐嶅姞瀵嗙畻娉曪紝緹庡浗鍥藉鏍囧噯灞浜?977騫村叕甯冩妸瀹冧綔涓洪潪鏈鴻閮ㄩ棬浣跨敤鐨勬暟鎹姞瀵嗘爣鍑嗭紝浜屽崄騫存潵錛屽畠涓鐩存椿璺冨湪鍥介檯淇濆瘑閫氫俊鐨勮垶鍙頒笂錛屾壆婕斾簡鍗佸垎閲嶈鐨勮鑹瞇10]銆?br />聽 DES鏄竴涓垎緇勫姞瀵嗙畻娉曪紝浠栦互64浣嶄負鍒嗙粍瀵規暟鎹姞瀵嗐傚悓鏃禗ES涔熸槸涓涓縐扮畻娉曪細鍔犲瘑鍜岃В瀵嗙敤鐨勬槸鍚屼竴涓畻娉曘傚畠鐨勫瘑鍖欓暱搴︽槸56浣嶏紙鍥犱負姣忎釜絎?浣嶉兘鐢ㄤ綔濂囧伓鏍¢獙錛夛紝瀵嗗寵鍙互鏄換鎰忕殑56浣嶇殑鏁幫紝鑰屼笖鍙互浠繪剰鏃跺欐敼鍙樸傚叾涓湁鏋佸皯閲忕殑鏁拌璁や負鏄急瀵嗗寵錛屼絾鏄緢瀹規槗閬垮紑浠栦滑銆傛墍浠ヤ繚瀵嗘т緷璧栦簬瀵嗛挜銆?br />
2 綆楁硶妗嗘灦[11]錛?br />聽 DES瀵?4(bit)浣嶇殑鏄庢枃鍒嗙粍M榪涜鎿嶄綔錛孧緇忚繃涓涓垵濮嬬疆鎹P緗崲鎴恗0錛屽皢m0鏄庢枃鍒嗘垚宸﹀崐閮ㄥ垎鍜屽彸鍗婇儴鍒唌0=(L0,R0)錛屽悇32浣嶉暱銆傜劧鍚庤繘琛?6杞畬鍏ㄧ浉鍚岀殑榪愮畻錛岃繖浜涜繍綆楄縐頒負鍑芥暟f錛屽湪榪愮畻榪囩▼涓暟鎹笌瀵嗗寵緇撳悎銆傜粡榪?6杞悗錛屽乏錛屽彸鍗婇儴鍒嗗悎鍦ㄤ竴璧風粡榪囦竴涓湯緗崲錛岃繖鏍峰氨瀹屾垚浜哰12]銆?br />聽 鍦ㄦ瘡涓杞腑錛屽瘑鍖欎綅縐諱綅錛岀劧鍚庡啀浠庡瘑鍖欑殑56浣嶄腑閫夊嚭48浣嶃傞氳繃涓涓墿灞曠疆鎹㈠皢鏁版嵁鐨勫彸鍗婇儴鍒嗘墿灞曟垚48浣嶏紝騫墮氳繃涓涓紓鎴栨搷浣滄浛浠f垚鏂扮殑32浣嶆暟鎹紝鍦ㄥ皢鍏剁疆鎹㈡崲涓嬈°傝繖鍥涙榪愮畻鏋勬垚浜嗗嚱鏁癴銆傜劧鍚庯紝閫氳繃鍙︿竴涓紓鎴栬繍綆楋紝鍑芥暟f鐨勮緭鍑轟笌宸﹀崐閮ㄥ垎緇撳悎錛屽叾緇撴灉鎴愪負鏂扮殑鍙沖崐閮ㄥ垎錛屽師鏉ョ殑鍙沖崐閮ㄥ垎鎴愪負鏂扮殑宸﹀崐閮ㄥ垎銆傚皢璇ユ搷浣滈噸澶?6嬈★紝灝卞疄鐜頒簡銆傚叿浣撳浘4鎵紺恒?br />
聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥?銆DES綆楁硶妗嗗浘
3 DES瑙e瘑
聽 鍦ㄧ粡榪囨墍鏈夌殑浠f浛銆佺疆鎹€佸紓鎴栫洅寰幆涔嬪悗錛屼綘涔熻璁や負瑙e瘑綆楁硶涓庡姞瀵嗙畻娉曞畬鍏ㄤ笉鍚屻傛伆鎭扮浉鍙嶏紝緇忚繃綺懼績閫夋嫨鐨勫悇縐嶆搷浣滐紝鑾峰緱浜嗕竴涓潪甯告湁鐢ㄧ殑鎬ц川錛氬姞瀵嗗拰瑙e瘑浣跨敤鐩稿悓鐨勭畻娉曘?br />DES鍔犲瘑鍜岃В瀵嗗敮涓鐨勪笉鍚屾槸瀵嗗寵鐨勬搴忕浉鍙嶃傚鏋滃悇杞姞瀵嗗瘑鍖欏垎鍒槸K1,K2,K3鈥?K16閭d箞瑙e瘑瀵嗗寵灝辨槸K16,K15,K14鈥1銆?br />
4 DES鐨勫嚑縐嶅伐浣滄柟寮?/font>
聽 絎竴縐嶇數瀛愬瘑鏈柟寮忥紙ECB錛?/font>
聽聽 灝嗘槑鏂囧垎鎴恘涓?4姣旂壒鍒嗙粍錛屽鏋滄槑鏂囬暱搴︿笉鏄?4姣旂壒鐨勫嶆暟錛屽垯鍦ㄦ槑鏂囨湯灝懼~鍏呴傚綋鏁扮洰鐨勮瀹氱鍙楓傚鏄庢枃緇勭敤緇欏畾鐨勫瘑閽ュ垎鍒繘琛屽姞瀵嗭紝琛屽瘑鏂嘋=(C0,C1,鈥︹?Cn-1)鍏朵腑Ci=DES(K,xi),i=0,1,鈥?.,n-1銆?br />聽 絎簩縐嶅瘑鏂囧垎緇勯摼鎺ユ柟寮忥紙CBC錛?/font>
聽聽 鍦–BC鏂瑰紡涓嬶紝姣忎釜鏄庢枃緇剎i鍦ㄥ姞瀵嗗墠涓庡厛涓緇勫瘑鏂囨寜浣嶆ā浜屽姞鍚庯紝鍐嶉佸埌DES鍔犲瘑錛孋BC鏂瑰紡鍏嬫湇浜咵CB鏂瑰紡鎶ュ唴緇勯噸鐨勭己鐐癸紝浣嗙敱浜庢槑鏂囩粍鍔犲瘑鍓嶄笌涓緇勫瘑鏂囨湁鍏籌紝鍥犳鍓嶄竴緇勫瘑鏂囩殑閿欒浼氫紶鎾埌涓嬩竴緇勩?br />聽 絎笁縐嶅瘑鏂囧弽棣堟柟寮忥紙CFB錛夛紝鍙敤浜庡簭鍒楀瘑鐮?/font>
聽聽 鏄庢枃X錛?x0,x1,鈥︹?xn-1)錛屽叾涓瓁i鐢眛涓瘮鐗圭粍鎴?
聽聽 涓嶤FB鍞竴涓嶅悓鐨勬槸OFB鏄洿鎺ュ彇DES杈撳嚭鐨則涓瘮鐗癸紝鑰屼笉鏄彇瀵嗘枃鐨則涓瘮鐗癸紝鍏朵綑閮戒笌CFB鐩稿悓銆備絾瀹冨彇鐨勬槸DES鐨勮緭鍑猴紝鎵浠ュ畠鍏嬫湇浜咰FB鐨勫瘑鏂囬敊璇紶鎾殑緙虹偣
]]>
寤鴻鎬ф爣鍑哛S-485浣滀負涓縐嶅鐐廣佸樊鍒嗘暟鎹紶杈撶殑鐢墊皵瑙勮寖鐜板凡鎴愪負涓氱晫搴旂敤鏈涓哄箍娉涚殑鏍囧噯閫氫俊鎺ュ彛涔嬩竴銆傝繖縐嶉氫俊鎺ュ彛鍏佽鍦ㄧ畝鍗曠殑涓瀵瑰弻緇炵嚎涓婅繘琛屽鐐廣佸弻鍚戦氫俊銆佸畠鎵鍏鋒湁鐨勫櫔澹版姂鍒惰兘鍔涖佹暟鎹紶杈撻熺巼銆佺數緙嗛暱搴﹀強鍙潬鎬ф槸鍏朵粬鏍囧噯鏃犳硶姣旀嫙鐨勩傛鍥犱負姝わ紝璁稿涓嶅悓棰嗗煙閮介噰鐢≧S-485浣滀負鏁版嵁浼犺緭閾捐礬銆備緥濡傛苯杞︾數瀛愩佺數淇¤澶囥佸眬鍩熺綉銆佽渹紿濆熀绔欍佸伐涓氭帶鍒躲佷華鍣ㄤ華琛ㄧ瓑絳夈傝繖欏規爣鍑嗗緱鍒板箍娉涙帴鍙楃殑鍙﹀涓涓師鍥犳槸瀹冪殑閫氱敤鎬с俁S-485鏍囧噯鍙鎺ュ彛鐨勭數姘旂壒鎬у仛鍑鴻瀹氾紝鑰屼笉娑夊強鎺ユ彃浠躲佺數緙嗘垨鍗忚錛屽湪姝ゅ熀紜涓婄敤鎴峰彲浠ュ緩绔嬭嚜宸辯殑楂樺眰閫氫俊鍗忚銆?/FONT>
灝界RS-485鏍囧噯宸茶騫挎硾鎺ュ彈錛屼絾鏄浜庡畠鍦ㄥ疄闄呭簲鐢ㄤ腑鐨勪竴浜涘叿浣撻棶棰樺茍娌℃湁寰楀埌娣卞叆騫挎硾鐨勮璇嗭紝鐢氳嚦瀛樺湪鐫縐嶇璇尯錛屼互鑷充簬褰卞搷鍒版暣涓郴緇熺殑鎬ц兘銆傛湰鏂囧湪鍥為【RS-485鏍囧噯鐨勫熀紜涓婏紝閲嶇偣璁ㄨ鍑犱釜瀹為檯搴旂敤涓父琚拷瑙嗙殑闂銆?/FONT>
RS-485鏍囧噯鍥為【
RS-485鏍囧噯鏈鍒濈敱鐢靛瓙宸ヤ笟鍗忎細錛圗IA錛変簬1983騫村埗璁㈠茍鍙戝竷錛屽悗鐢盩IA-閫氳宸ヤ笟鍗忎細淇鍚庡懡鍚嶄負TIA/EIA-485-A錛屼笉榪囧伐紼嬪笀榪樻槸涔犳儻鍦扮О涔嬩負RS-485銆俁S-485鐢盧S-422鍙戝睍鑰屾潵錛屽悗鑰呮槸涓哄譏琛S-232涔嬩笉瓚寵屾彁鍑虹殑銆備負鏀硅繘RS-232閫氫俊璺濈鐭侀熺巼浣庣殑緙虹偣錛孯S-422瀹氫箟浜嗕竴縐嶅鉤琛¢氫俊鎺ュ彛錛屽皢浼犺緭閫熺巼鎻愰珮鍒?0Mbps錛屼紶杈撹窛紱誨歡闀垮埌4000鑻卞昂錛堥熺巼浣庝簬100kbps鏃訛級錛屽茍鍏佽鍦ㄤ竴鏉″鉤琛$嚎涓婅繛鎺ユ渶澶?0涓帴鏀跺櫒銆俁S-422鏄竴縐嶅崟鏈哄彂閫併佸鏈烘帴鏀剁殑鍗曞悜銆佸鉤琛′紶杈撹鑼冿紝涓烘墿灞曞簲鐢ㄨ寖鍥達紝闅忓悗鍙堜負鍏跺鍔犱簡澶氱偣銆佸弻鍚戦氫俊鑳藉姏錛屽嵆鍏佽澶氫釜鍙戦佸櫒榪炴帴鍒板悓涓鏉℃葷嚎涓婏紝鍚屾椂澧炲姞浜嗗彂閫佸櫒鐨勯┍鍔ㄨ兘鍔涘拰鍐茬獊淇濇姢鐗規э紝鎵╁睍浜嗘葷嚎鍏辨ā鑼冨洿錛岃繖灝辨槸鍚庢潵鐨凟IA RS-485鏍囧噯銆?/FONT>
RS-485鏄竴涓數姘旀帴鍙h鑼冿紝瀹冨彧瑙勫畾浜嗗鉤琛¢┍鍔ㄥ櫒鍜屾帴鏀跺櫒鐨勭數鐗規э紝鑰屾病鏈夎瀹氭帴鎻掍歡銆佷紶杈撶數緙嗗拰閫氫俊鍗忚銆俁S-485鏍囧噯瀹氫箟浜嗕竴涓熀浜庡崟瀵瑰鉤琛$嚎鐨勫鐐廣佸弻鍚戯紙鍗婂弻宸ワ級閫氫俊閾捐礬錛屾槸涓縐嶆瀬涓虹粡嫻庛佸茍鍏鋒湁鐩稿綋楂樺櫔澹版姂鍒躲佷紶杈撻熺巼銆佷紶杈撹窛紱誨拰瀹藉叡妯¤寖鍥寸殑閫氫俊騫沖彴銆俁S-485鎺ュ彛鐨勪富瑕佺壒鐐瑰涓嬶細
緗戠粶閰嶇疆
RS-485鏀寔鍗婂弻宸ユ垨鍏ㄥ弻宸ユā寮忥紝緗戠粶鎷撴墤涓鑸噰鐢ㄧ粓绔尮閰嶇殑鎬葷嚎鍨嬬粨鏋勶紝涓嶆敮鎸佺幆褰㈡垨鏄熷艦緗戠粶銆傛渶濂介噰鐢ㄤ竴鏉℃葷嚎灝嗗悇涓妭鐐逛覆鎺ヨ搗鏉ワ紝浠庢葷嚎鍒版瘡涓妭鐐圭殑寮曞嚭綰塊暱搴﹀簲灝介噺鐭紝浠ヤ究浣垮紩鍑虹嚎涓殑鍙嶅皠淇″彿瀵規葷嚎淇″彿鐨勫獎鍝嶆渶浣庛傚浘1鎵紺轟負瀹為檯搴旂敤涓父瑙佺殑涓浜涢敊璇繛鎺ユ柟寮忥紙a錛宑錛宔錛夊拰姝g‘鐨勮繛鎺ユ柟寮忥紙b錛宒錛宖錛夈俛錛宑錛宔涓夌涓嶆伆褰撶殑緗戠粶榪炴帴灝界鍦ㄦ煇浜涙儏鍐典笅錛堢煭璺濈銆佷綆閫熺巼錛変粛鐒跺彲浠ユ甯稿伐浣滐紝浣嗛殢鐫閫氫俊璺濈鐨勫歡闀挎垨閫氫俊閫熺巼鐨勬彁楂橈紝鍏朵笉鑹獎鍝嶄細瓚婃潵瓚婁弗閲嶏紝涓昏鍘熷洜鏄俊鍙峰湪鍚勬敮璺湯绔弽灝勫悗涓庡師淇″彿鍙犲姞錛岄犳垚淇″彿璐ㄩ噺涓嬮檷銆傞櫎姝や箣澶栬繕搴旀敞鎰忔葷嚎鐗規ч樆鎶楃殑榪炵畫鎬э紝鍦ㄩ樆鎶椾笉榪炵畫鐐逛篃浼氬彂鐢熶俊鍙風殑鍙嶅皠銆備緥濡傦紝鎬葷嚎鐨勪笉鍚屽尯孌甸噰鐢ㄤ笉鍚岀數緙嗐佹煇涓孌墊葷嚎涓婃湁榪囧鏀跺彂鍣ㄧ揣闈犲湪涓璧峰畨瑁呫佹垨鑰呮槸鏈夎繃闀垮垎鏀嚎寮曞嚭鎬葷嚎鏃墮兘浼氬嚭鐜伴樆鎶椾笉榪炵畫鐐廣傛諱箣錛屽簲璇ユ彁渚涗竴鏉″崟涓銆佽繛緇殑淇″彿閫氶亾浣滀負鎬葷嚎銆?/FONT>

鍥?:鍑犵閿欒鐨勭綉緇滆繛鎺ユ柟寮忓強姝g‘鐨勬柟寮?/FONT>
鏈夊叧鎬葷嚎涓婂厑璁歌繛鎺ョ殑鏀跺彂鍣ㄦ暟鏍囧噯騫舵病鏈夊仛鍑鴻瀹氾紝浣嗚瀹氫簡鏈澶ф葷嚎璐熻澆涓?2涓崟浣嶈礋杞斤紙UL錛夈傛瘡鍗曚綅璐熻澆鐨勬渶澶ц緭鍏ョ數嫻佷負1.0mA/-0.8mA錛岀浉褰撲簬綰?2k惟銆備負浜嗘墿灞曟葷嚎鑺傜偣鏁幫紝鍣ㄤ歡鐢熶駭鍘傚晢澧炲ぇ鏀跺彂鍣ㄨ緭鍏ョ數闃匯備緥濡侻AX487錛孧AX1487鐨勮緭鍏ョ數闃誨鍔犺嚦48k惟浠ヤ笂錛?/4UL錛夛紝鑺傜偣鏁板氨鍙鍔犺嚦128涓紝96k惟杈撳叆鐢甸樆鐨凪AX1483鍏佽鑺傜偣鏁板彲鍒?56涓?/FONT>
鎬葷嚎鍖歸厤
鏄惁瀵筊S-485鎬葷嚎榪涜緇堢鍖歸厤鍙栧喅浜庢暟鎹紶杈撻熺巼銆佺數緙嗛暱搴﹀強淇″彿杞崲閫熺巼銆俇ART鏄湪姣忎釜鏁版嵁浣嶇殑涓偣閲囨牱鏁版嵁鐨勶紝鍙鍙嶅皠淇″彿鍦ㄥ紑濮嬮噰鏍鋒椂琛板噺鍒拌凍澶熶綆灝卞彲浠ヤ笉鑰冭檻鍖歸厤銆傛湁涓鏉$粡楠屾х殑鍑嗗垯鍙互鐢ㄦ潵鍒ゆ柇鍦ㄤ粈涔堟牱鐨勬暟鎹熺巼鍜岀數緙嗛暱搴︽椂闇瑕佽繘琛屽尮閰嶏細褰撲俊鍙風殑杞崲鏃墮棿錛堜笂鍗囨垨涓嬮檷鏃墮棿錛夎秴榪囩數淇″彿娌挎葷嚎鍗曞悜浼犺緭鎵闇鏃墮棿鐨?鍊嶄互涓婃椂灝卞彲浠ヤ笉鍔犲尮閰嶃備緥濡傚叿鏈夐檺鏂滅巼鐗規х殑RS-485鎺ュ彛MAX483杈撳嚭淇″彿鐨勪笂鍗囨垨涓嬮檷鏃墮棿鏈灝忎負250ns錛屽吀鍨嬪弻緇炵嚎涓婄殑淇″彿浼犺緭閫熺巼綰︿負0.2m/ns錛?4AWG PVC鐢電紗錛夛紝閭d箞鍙鏁版嵁閫熺巼鍦?50kbps浠ュ唴銆佺數緙嗛暱搴︿笉瓚呰繃16綾籌紝閲囩敤MAX483浣滀負RS-485鎺ュ彛鏃跺氨鍙互涓嶅姞緇堢鍖歸厤銆?/FONT>
褰撹冭檻緇堢鍖歸厤鏃訛紝鏈夊縐嶅尮閰嶆柟妗堝彲浠ラ夋嫨銆傛渶綆鍗曠殑灝辨槸鍦ㄦ葷嚎涓ょ鍚勬帴涓鍙樆鍊肩瓑浜庣數緙嗙壒鎬ч樆鎶楃殑鐢甸樆錛堝浘2a錛夈傚ぇ澶氭暟鍙岀粸綰跨壒鎬ч樆鎶楀ぇ綰﹀湪100惟鑷?20惟涔嬮棿銆傝繖縐嶅尮閰嶆柟娉曠畝鍗曟湁鏁堬紝浣嗘湁涓涓己鐐癸紝鍖歸厤鐢甸樆瑕佹秷鑰楄緝澶у姛鐜囷紝瀵逛簬鍔熻楅檺鍒舵瘮杈冧弗鏍肩殑緋葷粺涓嶅お閫傚悎銆傚彟澶栦竴縐嶆瘮杈冪渷鐢電殑鍖歸厤鏂瑰紡鏄疪C鍖歸厤錛堝浘2b錛夈傚埄鐢ㄤ竴鍙數瀹笴闅旀柇鐩存祦鎴愬垎鍙互鑺傜渷澶ч儴鍒嗗姛鐜囥備絾鐢靛C鐨勫彇鍊兼槸涓毦鐐癸紝闇瑕佸湪鍔熻楀拰鍖歸厤璐ㄩ噺闂磋繘琛屾姌琛楓傞櫎涓婅堪涓ょ澶栵紝榪樻湁涓縐嶉噰鐢ㄤ簩鏋佺鐨勫尮閰嶆柟妗堬紙鍥?c錛夈傝繖縐嶆柟妗堣櫧鏈疄鐜扮湡姝g殑"鍖歸厤"錛屼絾瀹冨埄鐢ㄤ簩鏋佺鐨勯挸浣嶄綔鐢ㄨ繀閫熷墛寮卞弽灝勪俊鍙鳳紝杈懼埌鏀瑰杽淇″彿璐ㄩ噺鐨勭洰鐨勩傝妭鑳芥晥鏋滄樉钁椼?/FONT>

鍥?錛氬嚑縐嶇粓绔尮閰嶆柟妗?/FONT>
寮曞嚭綰?/B>
RS-485鎬葷嚎涓婄殑姣忎釜鏀跺彂鍣ㄩ氳繃涓孌靛紩鍑虹嚎鎺ュ叆鎬葷嚎錛屽紩鍑虹嚎榪囬暱鏃訛紝鐢變簬淇″彿鍦ㄥ紩鍑虹嚎涓殑鍙嶅皠錛屼篃浼氬獎鍝嶆葷嚎涓婄殑淇″彿璐ㄩ噺銆傚拰鍓嶉潰鐨勮璁轟竴鏍鳳紝緋葷粺鎵鑳藉厑璁哥殑寮曞嚭綰塊暱搴︿篃鍜屼俊鍙風殑杞崲鏃墮棿銆佹暟鎹熺巼鏈夊叧銆備笅闈㈢殑緇忛獙鍏紡鍙互鐢ㄦ潵浼扮畻寮曞嚭綰跨殑鏈澶ч暱搴︼細
Lmax=錛坱RISE脳0.2m/ns錛?10
浠AX483涓轟緥錛屽搴斾簬250ns鐨勪笂鍗?涓嬮檷鏃墮棿錛屾葷嚎鍏佽鐨勬渶澶у紩鍑虹嚎闀垮害綰︿負5綾熾?/FONT>
浠庝互涓婄殑鍒嗘瀽鍙互鐪嬪嚭錛屽噺緙撲俊鍙風殑鍓嶅悗娌挎枩鐜囨湁鍒╀簬闄嶄綆瀵逛簬鎬葷嚎鍖歸厤銆佸紩鍑虹嚎闀垮害鐨勮姹傦紝鏀瑰杽淇″彿璐ㄩ噺錛屽悓鏃訛紝榪樹嬌淇″彿涓殑楂橀鎴愬垎闄嶄綆錛屽噺灝戠數紓佽緪灝勶紝鍥犳錛屾湁浜涘櫒浠剁敓浜у巶鍟嗗湪RS-485鎺ュ彛鍣ㄤ歡涓鍔犱簡鎽嗙巼闄愬埗鐢佃礬鏉ュ噺緙撲俊鍙峰墠鍚庢部錛屼絾榪欑鍋氭硶涔熼檺鍒朵簡鏁版嵁浼犺緭閫熺巼銆傜敱姝ょ湅鏉ワ紝鍦ㄩ夋嫨鎺ュ彛鍣ㄤ歡鏃訛紝騫朵笉鏄熺巼瓚婇珮瓚婂ソ錛屽簲璇ユ牴鎹郴緇熻姹傦紝閫夋嫨鏈浣庨熺巼鐨勫櫒浠躲?/FONT>
澶辨晥淇濇姢
RS-485鏍囧噯瑙勫畾鎺ユ敹鍣ㄩ棬闄愪負鹵200mV銆傝繖鏍瘋瀹氳兘澶熸彁渚涙瘮杈冮珮鐨勫櫔澹版姂鍒惰兘鍔涳紝浣嗗悓鏃朵篃甯︽潵浜嗕竴涓棶棰橈細褰撴葷嚎鐢靛帇鍦?00mV涓棿鏃舵帴鏀跺櫒杈撳嚭鐘舵佷笉紜畾銆傜敱浜嶶ART浠ヤ竴涓墠瀵?0"瑙﹀彂涓嬈℃帴鏀跺姩浣滐紝鎵浠ユ帴鏀跺櫒鐨勪笉瀹氭佸彲鑳戒細浣縐ART閿欒鍦版帴鏀朵竴浜涙暟鎹紝瀵艱嚧緋葷粺璇姩浣溿傚綋鎬葷嚎絀洪棽銆佸紑璺垨鐭礬鏃墮兘鏈夊彲鑳藉嚭鐜頒袱綰跨數鍘嬪樊浣庝簬200mV鐨勬儏鍐碉紝蹇呴』閲囧彇涓瀹氭帾鏂介伩鍏嶆帴鏀跺櫒澶勪簬涓嶅畾鎬併備紶緇熺殑鍋氭硶鏄粰鎬葷嚎鍔犲亸緗紝褰撴葷嚎絀洪棽鎴栧紑璺椂錛屽埄鐢ㄥ亸緗數闃誨皢鎬葷嚎鍋忕疆鍦ㄤ竴涓‘瀹氱殑鐘舵侊紙宸垎鐢靛帇鈮?00mV錛夈備絾榪欑鏂規硶浠嶇劧涓嶈兘瑙e喅鎬葷嚎鐭礬鏃剁殑闂錛屼負姝わ紝鏈変簺鍣ㄤ歡鍒墮犲晢灝嗘帴鏀墮棬闄愮Щ鍒?200mV/-50mV錛屽閥濡欏湴瑙e喅浜嗚繖涓棶棰樸備緥濡侻axim鍏徃涓篗AX3080緋誨垪RS-485鎺ュ彛錛屼笉浣嗙渷鍘諱簡澶栭儴鍋忕疆鐢甸樆錛岃屼笖瑙e喅浜嗘葷嚎鐭礬鎯呭喌涓嬬殑澶辨晥淇濇姢闂銆?/FONT>
鍦扮嚎涓庢帴鍦?/B>
鐢靛瓙緋葷粺鐨勬帴鍦版槸涓涓潪甯稿叧閿屽張甯稿父琚拷瑙嗙殑闂錛屾帴鍦板鐞嗕笉褰撶粡甯鎬細瀵艱嚧涓嶈兘紼沖畾宸ヤ綔鐢氳嚦鍗卞強緋葷粺瀹夊叏銆傚浜嶳S-485緗戠粶鏉ヨ涔熸槸涓鏍鳳紝娌℃湁涓涓悎鐞嗙殑鎺ュ湴緋葷粺鍙兘浼氫嬌緋葷粺鐨勫彲闈犳уぇ鎵撴姌鎵o紝灝ゅ叾鏄湪宸ヤ綔鐜姣旇緝鎭跺姡鐨勬儏鍐典笅錛屽浜庢帴鍦扮殑瑕佹眰鏇翠負涓ユ牸銆傛湁鍏砇S-485緗戠粶鐨勬帴鍦伴棶棰樺緢灝戞湁璧勬枡鎻愬強錛屽湪璁捐鑰呬腑涔熷瓨鍦ㄧ潃寰堝璇尯錛岃嚧浣塊氫俊鍙潬鎬ч檷浣庛佹帴鍙f崯鍧忕巼杈冮珮銆備竴涓吀鍨嬬殑閿欒瑙傜偣灝辨槸璁や負RS-485閫氫俊閾捐礬涓嶉渶瑕佷俊鍙峰湴錛岃屽彧鏄畝鍗曞湴鐢ㄤ竴瀵瑰弻緇炵嚎灝嗗悇涓帴鍙g殑"A"銆?B"绔繛鎺ヨ搗鏉ャ傝繖縐嶅鐞嗘柟娉曞湪鏌愪簺鎯呭喌涓嬩篃鍙互宸ヤ綔錛屼絾緇欑郴緇熷煁涓嬩簡闅愭偅錛屼富瑕佹湁浠ヤ笅涓ゆ柟闈㈢殑闂錛?/FONT>

鍥?:鍦扮數浣嶅樊瀵艱嚧鐨勫叡妯″共鎵伴棶棰?/FONT>
鍏辨ā騫叉壈闂銆傜殑紜紝RS-485鎺ュ彛閲囩敤宸垎鏂瑰紡浼犺緭淇″彿錛屽茍涓嶉渶瑕佺浉瀵逛簬鏌愪釜鍙傜収鐐規潵媯嫻嬩俊鍙鳳紝緋葷粺鍙渶媯嫻嬩袱綰夸箣闂寸殑鐢典綅宸氨鍙互浜嗐備絾搴旇娉ㄦ剰鐨勬槸錛屾敹鍙戝櫒鍙湁鍦ㄥ叡妯$數鍘嬩笉瓚呭嚭涓瀹氳寖鍥達紙-7V鑷?12V錛夌殑鏉′歡涓嬫墠鑳芥甯稿伐浣溿傚綋鍏辨ā鐢靛帇瓚呭嚭姝よ寖鍥村氨浼氬獎鍝嶉氫俊鐨勫彲闈狅紝鐩磋嚦鎹熷潖鎺ュ彛銆傚鍥?鎵紺猴紝褰撳彂閫佸櫒A鍚戞帴鏀跺櫒B鍙戦佹暟鎹椂錛屽彂閫佸櫒A鐨勮緭鍑哄叡妯$數鍘嬩負VOS錛岀敱浜庝袱涓郴緇熷叿鏈夊悇鑷嫭绔嬬殑鎺ュ湴緋葷粺錛屽瓨鍦ㄧ潃鍦扮數浣嶅樊VGPD銆傞偅涔堬紝鎺ユ敹鍣ㄨ緭鍏ョ鐨勫叡妯$數鍘嬪氨浼氳揪鍒癡CM=VOS+VGPD銆俁S-485鏍囧噯瑙勫畾VOS鈮?V錛屼絾VGPD鍙兘浼氭湁寰堝ぇ騫呭害錛堝崄鍑犱紡鐢氳嚦鏁板崄浼忥級錛屽茍鍙兘浼存湁寮哄共鎵頒俊鍙鳳紝鑷翠嬌鎺ユ敹鍣ㄥ叡妯¤緭鍏CM瓚呭嚭姝e父鑼冨洿錛屽茍鍦ㄤ俊鍙風嚎涓婁駭鐢熷共鎵扮數嫻侊紝杞誨垯褰卞搷姝e父閫氫俊錛岄噸鍒欐崯鍧忔帴鍙c?/P>
鐢電杈愬皠錛圗MI錛夐棶棰樸傞┍鍔ㄥ櫒杈撳嚭淇″彿涓殑鍏辨ā閮ㄥ垎闇瑕佷竴涓繑鍥為氳礬錛屽鏋滄病鏈変竴涓綆闃葷殑榪斿洖閫氶亾錛堜俊鍙峰湴錛夛紝灝變細浠ヨ緪灝勭殑褰㈠紡榪斿洖婧愮錛屾暣涓葷嚎灝變細鍍忎竴涓法澶х殑澶╃嚎鍚戝杈愬皠鐢電娉€?/P>
鍥犳錛屽敖綆℃槸宸垎浼犺緭錛屽浜嶳S-485緗戠粶鏉ヨ錛屼竴鏉′綆闃葷殑淇″彿鍦拌繕鏄繀涓嶅彲灝戠殑銆傚鍥?a鎵紺猴紝涓鏉′綆闃葷殑淇″彿鍦板皢涓や釜鎺ュ彛鐨勫伐浣滃湴榪炴帴璧鋒潵錛屼嬌鍏辨ā騫叉壈鐢靛帇VGPD琚煭璺傝繖鏉′俊鍙峰湴鍙互鏄澶栫殑涓瀵圭嚎錛堥潪灞忚斀鍙岀粸綰匡級銆佹垨鑰呮槸灞忚斀鍙岀粸綰跨殑灞忚斀灞傘傚煎緱娉ㄦ剰鐨勬槸錛岃繖縐嶅仛娉曚粎瀵歸珮闃誨瀷鍏辨ā騫叉壈鏈夋晥錛岀敱浜庡共鎵版簮鍐呴樆澶э紝鐭帴鍚庝笉浼氬艦鎴愬緢澶х殑鎺ュ湴鐜礬鐢墊祦錛屽浜庨氫俊涓嶄細鏈夊緢澶у獎鍝嶃傚綋鍏辨ā騫叉壈婧愬唴闃昏緝浣庢椂錛屼細鍦ㄦ帴鍦扮嚎涓婂艦鎴愯緝澶х殑鐜礬鐢墊祦錛屽獎鍝嶆甯擱氫俊銆傜瑪鑰呰涓猴紝鍙互閲囧彇浠ヤ笅涓夌鎺柦錛?/FONT>

鍥?:鍦扮嚎涓庢帴鍦版柟妗?/FONT>
1銆佽嫢騫叉壈婧愬唴闃諱笉鏄潪甯稿皬錛屽彲浠ヨ冭檻鍦ㄦ帴鍦扮嚎涓婂姞闄愭祦鐢甸樆闄愬埗騫叉壈鐢墊祦銆傛帴鍦扮數闃葷殑澧炲姞鍙兘浼氫嬌鍏辨ā鐢靛帇鍗囬珮錛屼絾鍙鎺у埗鍦ㄩ傚綋鐨勮寖鍥村唴灝變笉浼氬獎鍝嶆甯擱氫俊錛堝浘4b錛夛紱
2銆侀噰鐢ㄦ誕鍦版妧鏈紝闅旀柇鎺ュ湴鐜礬銆傚綋鍏辨ā騫叉壈鍐呴樆寰堝皬鏃朵笂榪版柟娉曞凡涓嶈兘濂忔晥錛屾鏃跺彲浠ヨ冭檻灝嗗紩鍏ュ共鎵扮殑鑺傜偣錛堜緥濡傚浜庢伓鍔g殑宸ヤ綔鐜鐨勭幇鍦轟華琛級嫻疆璧鋒潵錛堜篃灝辨槸緋葷粺鐨勭數璺湴涓庢満澹蟲垨澶у湴闅旂錛夛紝榪欐牱灝遍殧鏂簡鎺ュ湴鐜礬錛屼笉浼氬艦鎴愬緢澶х殑鐜礬鐢墊祦錛堝浘4c錛夛紱
3銆侀噰鐢ㄩ殧紱繪帴鍙c傛湁浜涙儏鍐典笅錛屽嚭浜庡畨鍏ㄦ垨鍏朵粬鏂歸潰鐨勮冭檻錛岀數璺湴蹇呴』涓庢満澹蟲垨澶у湴鐩歌繛錛屼笉鑳芥偓嫻紝榪欐椂鍙互閲囩敤闅旂鎺ュ彛鏉ラ殧鏂帴鍦板洖璺紝浣嗘槸浠嶇劧搴旇鏈変竴鏉″湴綰垮皢闅旂渚х殑鍏叡绔笌鍏跺畠鎺ュ彛鐨勫伐浣滃湴鐩歌繛錛堝浘4d錛夈?/P>
鐬佷繚鎶?/B>
鍓嶉潰鎻愬埌鐨勬帴鍦版帾鏂藉彧瀵逛綆棰戠巼鐨勫叡妯″共鎵版湁淇濇姢浣滅敤錛屽浜庨鐜囧緢楂樼殑鐬佸共鎵板氨鏃犺兘涓哄姏浜嗐傚洜涓哄紩綰跨數鎰熺殑浣滅敤錛屽浜庨珮棰戠灛鎬佸共鎵版潵璁詫紝鎺ュ湴綰垮疄闄呯瓑鍚屼簬寮璺傝繖鏍風殑鐬佸共鎵板彲鑳戒細鏈夋垚鐧句笂鍗冧紡鐨勭數鍘嬶紝浣嗘寔緇椂闂村緢鐭傚湪鍒囨崲澶у姛鐜囨劅鎬ц礋杞斤紙鐢墊満銆佸彉鍘嬪櫒銆佺戶鐢靛櫒絳夛級銆侀棯鐢電瓑榪囩▼涓兘浼氫駭鐢熷箙搴﹀緢楂樼殑鐬佸共鎵幫紝濡傛灉涓嶅姞浠ラ傚綋闃叉姢灝變細鎹熷潖鎺ュ彛銆傚浜庤繖縐嶇灛鎬佸共鎵板彲浠ラ噰鐢ㄩ殧紱繪垨鏃佽礬鐨勬柟娉曞姞浠ラ槻鎶ゃ?/FONT>
鍥?a鎵紺轟負闅旂淇濇姢鏂規銆傝繖縐嶆柟妗堝疄闄呬笂灝嗙灛鎬侀珮鍘嬭漿縐誨埌闅旂鎺ュ彛涓殑鐢甸殧紱誨眰涓婏紝鐢變簬闅旂灞傜殑楂樼粷緙樼數闃伙紝涓嶄細浜х敓鎹熷鎬х殑嫻秾鐢墊祦錛岃搗鍒頒繚鎶ゆ帴鍙g殑浣滅敤銆傞氬父閲囩敤楂橀鍙樺帇鍣ㄣ佸厜鑰︾瓑鍏冧歡瀹炵幇鎺ュ彛鐨勭數姘旈殧紱伙紝宸叉湁鍣ㄤ歡鍘傚晢灝嗘墍鏈夎繖浜涘厓浠墮泦鎴愬湪涓鐗嘔C涓紝浣跨敤璧鋒潵闈炲父綆渚匡紝濡侻axim鍏徃鐨凪AX1480/MAX1490錛岄殧紱葷數鍘嬪彲浠ュ埌2500V銆傝繖縐嶆柟妗堢殑浼樼偣鏄彲浠ユ壙鍙楅珮鐢靛帇銆佹寔緇椂闂磋緝闀跨殑鐬佸共鎵幫紝瀹炵幇璧鋒潵涔熸瘮杈冨鏄擄紝緙虹偣鏄垚鏈緝楂樸?/FONT>
鍥?b鎵紺轟負鏃佽礬淇濇姢鏂規銆傝繖縐嶆柟妗堝埄鐢ㄧ灛鎬佹姂鍒跺厓浠訛紙濡俆VS銆丮OV銆佹皵浣撴斁鐢電絳夛級灝嗗嵄瀹蟲х殑鐬佽兘閲忔梺璺埌澶у湴錛屼紭鐐規槸鎴愭湰杈冧綆錛岀己鐐規槸淇濇姢鑳藉姏鏈夐檺錛屽彧鑳戒繚鎶や竴瀹氳兘閲忎互鍐呯殑鐬佸共鎵幫紝鎸佺畫鏃墮棿涓嶈兘寰堥暱錛岃屼笖闇瑕佹湁涓鏉¤壇濂界殑榪炴帴澶у湴鐨勯氶亾錛屽疄鐜拌搗鏉ユ瘮杈冨洶闅俱?/FONT>
瀹為檯搴旂敤涓彲浠ュ皢浜岃呯粨鍚堣搗鏉ョ伒媧昏繍鐢紙鍥?c錛夈傞殧紱繪帴鍙e澶у箙搴︾灛鎬佸共鎵拌繘琛岄殧紱伙紝鑰屾梺璺厓浠朵繚鎶ら殧紱繪帴鍙d笉琚繃楂樼殑鐬佺數鍘嬪嚮絀褲?/FONT>

鍥?錛氱灛鎬佷繚鎶ゆ柟妗?/FONT>
緇撹
RS-485鏍囧噯瀹氫箟浜嗕竴涓瀬涓哄潥鍥哄拰鍙潬鐨勯氫俊閾捐礬錛屽叿鏈夐珮鍣0鎶戝埗銆佸鍏辨ā鑼冨洿銆侀暱浼犺緭璺濈銆佸啿紿佷繚鎶ょ瓑鐗規э紝浣嗕竴涓湡姝e彲闈犵殑RS-485緗戠粶榪樻湁璧栦簬鍚堢悊鐨勫簲鐢ㄣ傚悎鐞嗙殑緗戠粶甯冨眬銆佷俊鍙烽氶亾鐨勮繛緇с佸懆鍏ㄧ殑淇濇姢鎺柦絳夛紝鍦ㄨ璁′箣鍒濆氨搴旇鏈変竴涓諱綋瑙勫垝銆?/FONT>


銆銆闂細濡備綍灝嗘樉紺虹殑鈥渟etup 灝嗗畨瑁?..鈥濅腑鐨勨渟etup鈥濆幓鎺夛紝闄や簡鐢ㄨ嚜瀹氫箟瀛椾覆鏉ヤ慨鏀硅繖涓湴鏂逛互澶栵紝濡備綍鎶婅繖涓猻etup鎼炴垚鍏朵粬鐨勶紵姣斿鈥滃畨瑁呯▼搴忕幇鍦ㄥ皢...鈥?/P>
銆銆絳旓細DirText "瀹夎紼嬪簭灝嗗畨瑁?$(^NameDA) 鍦ㄤ笅鍒楁枃浠跺す銆傝瀹夎鍒頒笉鍚屾枃浠跺す錛屽崟鍑?[嫻忚(B)] 騫墮夋嫨鍏朵粬鐨勬枃浠跺す銆?$_CLICK"
銆銆闂細濡備綍瀹氫箟嬈㈣繋欏甸潰鐨勬爣棰樺瓧浣撳ぇ灝忋?/P>
銆銆絳旓細浣跨敤浠ヤ笅鑴氭湰
紼嬪簭浠g爜
!define MUI_PAGE_CUSTOMFUNCTION_SHOW ChageFONT
!insertmacro MUI_PAGE_WELCOME
Function ChageFONT
GetDlgItem $0 $MUI_HWND 1201
createFont $1 "Tahoma" "11" "700"
SendMessage $0 ${WM_SETFONT} $1 0
銆銆闂細娣誨姞鐗堟湰鍙?/P>
寮曠敤鍐呭
VIProductVersion "1.2.3.4"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "A test comment"
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Test Application is a trademark of Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "?Fake company"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Test Application"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.2.3"
銆銆鍦ㄨ剼鏈腑鍔犲叆涓婇潰鐨勪唬鐮侊紝鍒欎負 NSIS 鐢熸垚鐨?exe 娣誨姞鐗堟湰淇℃伅銆傞棶棰樺氨鏄紝鑳藉惁璁╁睘鎬т腑璇█鏄劇ず涓衡滀腑鏂囷紙涓浗錛夆濓紵
銆銆絳旓細涓枃 ID 鏄?2052銆?鎶?${LANG_ENGLISH} 鏀逛負 2052銆?/P>
銆銆闂細鐢?2052 涔嬪悗紜疄鍙樻垚鈥滀腑鏂囷紙涓浗錛夆濅簡銆備絾鍏朵粬鍐呭浠嶆棫鏄貢鐮侊紝涓嶇煡鏈変粈涔堝姙娉曞彲浠ヨВ鍐沖悧錛?/P>
銆銆絳旓細鐗堟湰淇℃伅璁劇疆璇彞錛屾斁鍦?!insertmacro MUI_LANGUAGE 鐨勫悗闈紝NSIS 瑕佹敞閲嶆搴忕殑銆傚鏋滀嬌鐢ㄥ彜鍏哥晫闈紝鏀懼湪 LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" 鐨勫悗闈€?/P>
銆銆闂細濡備綍紱佹鏄劇ず banner 銆?/P>
銆銆絳旓細鍥劇ず鐨勬晥鏋滄槸鍥犱負瀹夎紼嬪簭鍒濆鍖栫殑鏃跺欙紝涔熷氨鏄?.onInit 鍑芥暟閲岄渶瑕佺敤鍒版煇涓枃浠剁殑鏃跺欏畨瑁呯▼搴忛渶瑕佹悳绱㈡暣涓暟鎹尯鍧楁潵鎶婂畠瑙e帇鍑烘潵錛屽綋瀹夎紼嬪簭姣旇緝澶х殑鏃跺欐悳绱㈡瘮杈冭垂鏃訛紝榪欎釜鏃跺欐墠鏄劇ず瑙e帇鐧懼垎姣斻備竴鑸兘鏄敤 ReserveFile 鏉ラ伩寮榪欑鎼滅儲銆傛瘮濡?Function .onInit 閲屾湁錛?/P>
紼嬪簭浠g爜
InitPluginsDir
File "/oname=$PLUGINSDIR\io.ini" ".\io.ini"
銆銆鎴栬呭叾浠栫被浼肩殑璇濓紝瀹夎紼嬪簭灝遍渶瑕佹悳绱㈠茍瑙e帇榪欎釜鏂囦歡銆備竴鑸湪鑴氭湰澶撮儴鍔狅細
紼嬪簭浠g爜
ReserveFile ".\io.ini"
銆銆榪欐牱 io.ini 灝變繚瀛樺湪鏁版嵁鍖哄潡鐨勫熬閮紝瀹夎紼嬪簭鍒濆鍖栫殑鏃跺欏氨涓嶇敤鎼滅儲鏁翠釜鏁版嵁鍖哄潡浜嗭紝鐩稿綋浜庡姞蹇簡瀹夎紼嬪簭鐨勫惎鍔ㄩ熷害銆?/P>
銆銆闂細鏍規嵁浠ヤ笂鏂規硶浣跨敤浜嗭紝紜疄涓嶄細鍐嶅嚭鐜板垵濮嬪寲鐨勫璇濇浜嗭紝浣嗘槸鍦ㄨ嚜瀹氫箟鐨?InstallOptions 欏墊樉紺哄墠錛岀▼搴忚繕鏄細鍋滈】涓孌墊椂闂達紝璇烽棶榪欐槸涓轟綍錛熷浣曢伩鍏嶏紵
銆銆絳旓細鏌愪簺鎺т歡姣旇緝娑堣楁椂闂寸殑錛屾瘮濡傛樉紺?ICON銆佷綅鍥?絳夛紝濡傛灉 InstallOptions 閲屽惈鏈夎繖浜涙帶浠跺彲鑳戒細鍋滈】銆傚鏋?InstallOptions 鏄涓涓〉闈㈢殑璇濊繕瑕佹妸 InstallOptions.dll 鍔犲叆鍒?ReserveFile 鍙傛暟閲屻傚啀鎴栬呭氨鏄繘鍏?InstallOptions 鐨勬椂鍊欏惈鏈夋瘮杈冨鏉傜殑鎸囦護錛屾瘮濡傚驚鐜瓑銆備竴鑸湪鍔犲叆 ReserveFile ${NSISDIR}\Plugins\InstallOptions.dll 鏃㈠彲閬垮厤銆?/P>
銆銆闂細濡備綍榪愯涓涓畨瑁呮枃浠?.inf
銆銆絳旓細ExecWait "RunDll32 advpack.dll,LaunchINFSection skins.inf,DefaultInstall"
銆銆闂細鍏寵仈鏂囦歡鍥炬爣鍚庯紝鍥炬爣娌″彉鍖栥?/P>
銆銆絳旓細鍒鋒柊鍥炬爣鐢紝 System::Call shell32.dll::SHChangeNotify(l, l, i, i) v (0x08000000, 0, 0, 0)
銆銆闂細鎴戠敤NSIS鍋氬ソ浜嗕竴涓畨瑁呯▼搴忥紝鍥犱負鏁版嵁杈冨錛屼竴鍏辨湁400澶歁錛岀敤鐨凩ZMA鍘嬬緝鏂瑰紡錛屽仛濂藉悗鐨勫畨瑁呯▼搴忕害200M錛屼絾鏄垜鍙戠幇鍦ㄨ繍琛岃繖涓畨瑁呯▼搴忔椂浼氬湪緋葷粺TEMP鐩綍浜х敓涓涓悓瀹夎鍚庣殑鍏ㄩ儴鍐呭鍚屾牱澶х殑涓存椂鏂囦歡錛堜竴杈硅繍琛屼竴杈瑰姞澶э紝鏈鍚庡埌400澶歁鍘諱簡錛夛紝濡傛灉鎴戝仛鐨勭▼搴忓皬鍊掓病浠涔堬紝鍙槸榪欎釜紼嬪簭鏈?00澶歁錛岄櫎浜嗚鍐欏叆瀹夎鐨勬暟鎹榪樿鍚屾牱澶у皬鐨勭┖闂存斁涓存椂鏂囦歡錛岃繖鏍峰瓙涔熷疄鍦ㄦ槸澶姳涓嶆潵錛屾垜鎯寵闂細鏈変粈涔堝姙娉曡兘璁╁叾鍦ㄥ畨瑁呮椂涓嶄嬌鐢ㄨ繖涔堝鐨勪復鏃剁┖闂村悧錛熷畨瑁呯殑鑴氭湰鏄敤HM NIS Edit鐨勫悜瀵肩敓鎴愮殑銆?/P>
銆銆絳旓細榪欐槸鍥犱負 NSIS 鍦ㄧ敤 LZMA 鏃墮噰鐢ㄤ簡鍥哄疄鍘嬬緝錛屼綍璋撳浐瀹炲帇緙╋紝鍏跺疄灝辨槸鎶婃墍鏈夋枃浠剁粺涓璧鋒潵鍘嬬緝錛屾墍浠ヨ繖鏍峰帇鍑烘潵鐨勬枃浠舵洿鍔犵殑灝忥紝鍚屾椂涔熷甫鏉ヤ簡涓涓棶棰橈紝瀹夎瑙e帇鐨勬椂鍊欙紝鍦ㄤ復鏃舵枃浠跺す涓敓鎴愪竴涓復鏃舵枃浠訛紝闅忕潃瀹夎鐨勮繘紼嬮愭笎澧炲ぇ錛屽埌鏈鍚庯紝闇瑕佷復鏃舵枃浠朵細鍙樻垚璺熷師瀹夎紼嬪簭涓鏍峰ぇ錛屼篃灝辨槸璇達紝闇瑕佸師瀹夎紼嬪簭 2 鍊嶇殑絀洪棿鎵嶅彲浠ュ畨瑁呰繖涓▼搴忥紝鎵浠ュ浜庡畨瑁呭ぇ閲忔枃浠舵椂錛岃繖鏄笉閫傚悎鐨勩?BR>銆銆NSIS 2.07 鐗堟湰涔嬪墠 LZMA 綆楁硶鏄浐瀹炲帇緙╃殑錛屾病鏈夐潪鍥哄疄鐨勯夐」錛屽鏋滈渶瑕佽繖鏍峰仛錛屽彧鏈変笅杞介潪鍥哄疄鍘嬬緝鐨勭紪璇戝櫒錛屼絾鏄?2.07 鍚庣殑 NSIS 鐨?LZMA 鍘嬬緝宸茬粡鏀逛負榛樿闈炲浐瀹炲帇緙╀簡錛屾墍浠ヨ繖涓棶棰樺悓鏃朵篃涓嶅啀瀛樺湪銆傚鏋滃湪鍒朵綔灝戦噺鏂囦歡鐨勫畨瑁呮椂錛屼粛鐒舵兂鍙栫敤鍥哄疄鍘嬬緝鍙互鍔犲叆 /SOLID 鍙傛暟銆?BR>銆銆鍍忚繖鏍鳳細 SetCompressor /SOLID lzma
銆銆闂細鑳戒笉鑳藉湪 Section 鍖烘涓疄鐜拌鍙朓NI鏂囦歡鐘舵佹潵瀹夎銆傝嫢閫変腑鍗曢夋1鍒欏畨瑁?涓畾涔夌殑鏂囦歡銆傝嫢涓嶉変腑鍒欎笉瀹夎銆傝嫢閫変腑鍗曢夋2鍒欏畨瑁?瀹氫箟鐨勬枃浠躲傝嫢涓嶉夊垯涓嶅畨瑁呫?/P>
銆銆絳旓細浣跨敤浠ヤ笅浠g爜
紼嬪簭浠g爜
!include LogicLib.nsh
Section -post
SetOutPath $INSTDIR
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 2" "State"
${If} $INI_VALUE = 1
File /a ".\file\fileA.exe"
File /a ".\file\fileB.exe"
${EndIf}
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 3" "State"
${If} $INI_VALUE = 1
File /a ".\file\fileA.exe"
${EndIf}
SectionEnd
銆銆鎴栬呬嬌鐢ㄤ互涓嬩唬鐮?/P>
紼嬪簭浠g爜
!include LogicLib.nsh
Section -post
SetOutPath $INSTDIR
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "info.ini" "Field 2" "State"
${If} $INI_VALUE = 1
;閫変腑鏃舵墽琛岀殑浠g爜
File /a ".\file\fileA.exe"
File /a ".\file\fileB.exe"
${Else}
;涓嶉変腑鏃舵墽琛岀殑浠g爜
File /a ".\file\fileA.exe"
${EndIf}
SectionEnd
銆銆闂細鍦?NSIS 涓浣曡緗伐浣滅洰褰曪紝渚嬪涓浜涙枃浠剁殑蹇嵎鏂瑰紡錛岃繕鏈夊畨瑁呭畬涓涓蔣浠跺悗榪愯涓涓▼搴忥紝鑰岃繖涓▼搴忛渶瑕佹嫻嬪綋鍓嶅伐浣滅洰褰曚笅鐨勬煇涓枃浠訛紝榪欐椂鍊欒緗伐浣滅洰褰曞挨涓洪噸瑕侊紝鍚﹀垯紼嬪簭涓嶈兘姝e父榪愯銆?/P>
銆銆絳旓細NSIS 涓瀹氬伐浣滅洰褰曚嬌鐢?SetOutPath錛屼緥濡傚湪榪愯紼嬪簭鐨勪唬鐮?ExecWait "$INSTDIR\test2.exe" 鍓嶆斁鍏?SetOutPath $INSTDIR錛岄偅涔?$INSTDIR 灝嗕細鎴愪負褰撳墠鐨勫伐浣滅洰褰曪紝寤虹珛蹇嵎鏂瑰紡涔熶細鎶婂伐浣滅洰褰曡涓?$INSTDIR銆傚嵏杞戒箣鍓嶈繍琛屾煇紼嬪簭鍙渶瑕佹妸榪愯鎸囦護鏀懼埌 Function un.onInit 閲屽氨琛?/P>
銆銆闂細璁板緱浠ュ墠鐪嬪埌鏈夊笘瀛愪粙緇嶈繃鍙湪NSIS涓皟鐢?inf鏂囦歡瀹夎闄勫姞椹卞姩紼嬪簭錛屽叿浣撳疄鐜頒唬鐮佸涓嬪艦寮忥細
寮曠敤鍐呭
ExecWait "RunDll32 advpack.dll,LaunchINFSection drivers.inf,DefaultInstall"
銆銆鍋跺湪鎵撳寘涓灝忎笢涓滄椂浣跨敤浜嗚繖涓鏂規硶錛屼絾閬囧埌鐨勯棶棰樻椂錛屽鏋滃湪鍗歌澆鍖烘閲岃緗兘鑷姩鍗歌澆瀹夎榪囩殑椹卞姩紼嬪簭鍛紵
銆銆絳旓細鑳藉惁鍗歌澆闇瑕佺湅 INF 鏂囦歡閲岄潰鏄惁鏈夊嵏杞界殑鍖烘錛屼緥濡備嬌鐢?NSIS 鍗歌澆 Windows Messenger 鍙互榪欐牱錛?/P>
紼嬪簭浠g爜
ExecWait "RunDll32 advpack.dll,LaunchINFSection $windir\INF\msmsgs.inf,BLC.Remove"
銆銆鍏充簬 BLC.Remove 鐨勬潵婧愶紝鍙互鎵撳紑 msmsgs.inf 鏂囦歡鍚庯紝鑳芥壘鍒板悕縐頒負 BLC.Remove 鐨勫尯孌碉紝璇ュ尯孌電敤浜庡嵏杞姐傚尯孌電殑鍚嶇О鏄紪鍐欒呰嚜宸卞畾鍒剁殑銆備笉鍚岀殑inf鏂囦歡錛屽尯孌靛悕涔熷彲鑳戒笉鍚屻傚叾浠栫殑 *.inf 鏂囦歡涔熷彲浠ユ寜鐓ф綾誨仛娉曘?/P>
闂細錛堥棶棰樺涓嬶級
銆銆1銆佹垜鍋氫簡涓涓彲鍚屾椂鍦ㄧ畝綣佽嫳涓嬫墽琛岀殑瀹夎紼嬪簭銆備絾鏈変釜寰堝ぇ鐨勫洶鎯戙傚垰寮濮嬫椂鍋氱殑鏄畝浣撲腑鏂囩増錛屽湪綆涓笅褰撶劧娌¢棶棰橈紝浣嗗湪鑻?綣佷笅錛屽垱寤虹殑涓枃紼嬪簭緇勫悕鍜屽啓娉ㄥ唽琛ㄦ椂鏄劇ず鐨勬槸涔辯爜銆備簬鏄兂鍒板啓涓涓笁鑰呯殕閫傚悎鐨勫畨瑁呯▼搴忋?BR>銆銆鎴戠殑鍋氭硶鏄繖鏍風殑錛屽湪娑夊強鍒板垱寤轟腑鏂囩▼搴忕粍鍜屽啓娉ㄥ唽琛ㄦ椂錛屽姞鍏ヤ竴涓垽鏂紝濡傛灉鑻辨枃鎴栫箒浣擄紝鍒欏垎鍒垱寤鴻嫳鏂囨枃浠跺悕鍜宐ig5鍐呯爜鏂囦歡鍚嶃備絾鍦ㄧ箒浣搘inxp鍜岃嫳鏂噖in2k涓嬫祴璇曞悗錛屽彂鐜版牴鏈棤娉曟甯稿垱寤虹▼搴忕粍錛屼篃鏃犳硶姝e父鐢熸垚uninstall.exe鏂囦歡銆傝屽啓鍏ユ敞鍐岃〃鐨勪腑鏂囧瓧絎︼紝涔熶笉鑳藉湪綣佷綋緋葷粺鐨勬敞鍐岃〃涓甯告樉紺猴紝鑰屾槸涔辯爜銆?BR>銆銆璇鋒暀楂樻墜錛岃繖縐嶅璇█鐜涓嬭鎬庝箞澶勭悊錛屾墠鑳芥甯告樉紺哄憿錛?鎬諱笉鑳藉叏閮ㄩ兘緇欏垱寤烘垚鑻辨枃鐨勫惂錛?BR>銆銆2銆佸彟澶栨湁涓皬闂錛屽浣曡nsis鍋氱殑瀹夎紼嬪簭涓嶆樉紺哄叿浣撶殑瀹夎鏂囦歡鍚嶏紝鑰屽彧鏄劇ず鈥滄鍦ㄥ鍒舵枃浠垛︹︹濓紵銆璞oobar閭f牱錛屽彲鎯渇oobar涔熸湁涓樉紺鴻緇嗘儏鍐電殑鎸夐挳錛屾垜鎯沖湪澶嶅埗鏂囦歡榪囩▼涓畬鍏ㄤ笉鏄劇ず鍜屾彁紺鴻澶嶅埗鐨勬枃浠舵儏鍐點?/P>
絳旓細錛堣В絳斿涓嬶級
銆銆1銆佹渶綆鍗曠殑澶勭悊鍔炴硶灝辨槸緇欓渶瑕佸鐞嗙殑璧勬簮榪涜涓涓畾涔夛紝鐒跺悗浣跨敤 LangString 瀹氫箟涓嶅悓鐨勮祫婧愩傜粰涓ず渚嬶細
紼嬪簭浠g爜
Caption "$(CAPTION)"
LangString CAPTION ${1033} "DreamMail Installation"
LangString CAPTION ${2052} "DreamMail 瀹夎鍚戝"
LangString CAPTION ${1028} "DreamMail 顩濇潌緲炬棫"
銆銆2銆佸彲浠ヤ嬌鐢?DetailPrint 錛岀ず渚嬶紝
紼嬪簭浠g爜
DetailPrint "姝e湪澶嶅埗鏂囦歡..."
銆銆闂細NSIS瀵逛簬瀹夎鍗歌澆鐨処CO鍥炬爣澶у皬鏈変粈涔堣姹?緙栬瘧鐨勬椂鍊欏嚭鐜頒互涓嬮敊璇彁紺猴細
寮曠敤鍐呭
Error finding icon resources: installer, uninstaller icon size mismatch - see the Icon instructions documentation for more information -- failing!
銆銆絳旓細鍙淇濊瘉瀹夎鍥炬爣涓庡嵏杞藉浘鏍囧ぇ灝忕浉鍚屽嵆鍙?/P>
銆銆闂細濡備綍灞忚斀濡備笅鍥句腑鐨勫畨瑁呯▼搴忔牎楠屻?/P>
銆銆絳旓細CRCCheck銆on|off|force 鎸囧畾瀹夎鍓嶅畨瑁呯▼搴忔槸鍚﹀鑷韓鎵ц涓涓?CRC銆傛敞鎰忥紝濡傛灉鐢ㄦ埛浣跨敤浜?/NCRC 鍛戒護琛屽弬鏁幫紝涓斾綘娌℃湁鎸囧畾 force 鍙傛暟鏃訛紝涓嶄細鎵ц CRC錛岃繖鏍鋒湁鍙兘瀵艱嚧鐢ㄦ埛瀹夎涓涓崯鍧忕殑瀹夎紼嬪簭銆?BR>銆銆瀹夎紼嬪簭 CRC 鏍¢獙鏄粯璁ゆ墦寮鐨勩傚彲浠ュ湪鑴氭湰涓敤 CRCCheck off 鏉ラ粯璁ょ姝㈠畨瑁呯▼搴忕殑 CRC 鏍¢獙銆備笉榪囪繖鏍峰仛姝e瑙i噴涓婅鐨勫彲鑳藉畨瑁呬細鍑虹幇闂銆備綔姹夊寲鐨勬渶濂藉姞涓婃牎楠岋紝鍏嶅緱瀹夎紼嬪簭鐨勯棶棰樺彉鎴愪綘姹夊寲璐ㄩ噺鐨勯棶棰樸?/P>
銆銆闂細鍦ㄥ畨瑁呯殑鏃跺欎笉鏄彲浠ラ夋嫨澶氱璇█涔堬紵浣嗘槸鎴戞庢牱瀹炵幇褰撻夋嫨鑻辨枃鏃跺氨瑁呰嫳鏂囩増錛岄夋嫨涓枃鏃跺氨瑁呬腑鏂囩増錛?/P>
銆銆絳旓細浣跨敤浠ヤ笅鑴氭湰錛?/P>
紼嬪簭浠g爜
StrCmp $LANGUAGE ${LANG_SIMPCHINESE} 0 +3
File "浣犻渶瑕佸畨瑁呯殑涓枃鏂囦歡"
Goto lbl_finish
File "浣犻渶瑕佸畨瑁呯殑鑻辨枃鏂囦歡"
lbl_finish:
銆銆闂細緇勪歡A 緇勪歡B 緇勪歡C 鍧囦負鍙夛紝A鍙崟鐙畨瑁咃紝B鎴栬匔琚夋嫨鐨勬椂鍊橝蹇呴』琚夋嫨銆?/P>
銆銆絳旓細浠ヤ笅浠g爜錛?/P>
紼嬪簭浠g爜
Section "緇勪歡 A" aaa
銆detailprint "A"
SectionEnd
Section "緇勪歡 B" bbb
銆detailprint "B"
SectionEnd
Section "緇勪歡 C" ccc
銆detailprint "C"
SectionEnd
Function .onSelChange
銆SectionGetFlags ${bbb} $0
銆SectionGetFlags ${ccc} $1
銆IntOp $0 $0 & 1
銆IntOp $1 $1 & 1
銆IntCmp $0 1 0 +2
銆銆SectionSetFlags ${aaa} 1
銆IntCmp $1 1 0 +2
銆銆SectionSetFlags ${aaa} 1
FunctionEnd
銆銆瑙i噴錛歋ectionGetFlags 琛ㄧず鑾峰彇鏌愬尯孌電殑flags鐘舵侊紙灝辨槸鏄惁琚嬀閫夛紝閫変腑榪斿洖鍊間負1錛屽弽涔嬩負0錛夈係ectionGetFlags ${bbb} $0 琛ㄧず鑾峰彇搴忓彿涓?{bbb}鐨勫尯孌電殑Flags鐘舵佸茍鎶婅繑鍥炲艱緭鍑哄埌鍙橀噺 $0錛孋 鍖烘鐩稿悓銆傛帴鐫灝辨槸 StrCmp 錛岃В閲婂悓涓婃ゼ銆係ectionSetFlags ${aaa} 1 琛ㄧず璁劇疆搴忓彿涓?${aaa} 鍖烘鐨?Flags 鐘舵佷負 1錛屽嵆鍕鵑夈?/P>
銆銆闂細鎬庝箞璁┾滆鍙崗璁濋〉闈㈢殑鏍囬鏍忥紝濡傜▼搴忎腑鐨勨淢utliPages 婕旂ず鈥濅慨鏀逛負鈥淢utliPages 婕旂ず錛氳鍙崗璁濄?/P>
銆銆絳旓細棣栧厛鍒涘緩涓涓嚱鏁幫紝濡備笅銆?/P>
紼嬪簭浠g爜
Function LicensePagePre
SendMessage $HWNDPARENT ${WM_SETTEXT} 0 "STR:鎴戠埍浣?
FunctionEnd
銆銆鐒跺悗鍦ㄥ崗璁〉闈㈠彞瀛?
紼嬪簭浠g爜
!insertmacro MUI_PAGE_LICENSE "c:\path\to\licence\YourSoftwareLicence.txt"
銆銆涔嬪墠鍔犲叆濡備笅璇彞
紼嬪簭浠g爜
!define MUI_PAGE_CUSTOMFUNCTION_PRE LicensePagePre
銆銆闂細姣斿錛屾垜鎶?a.exe 鐢╪sis鍖呰濂斤紝瀹夎鍒?c:\helloLib\a.exe錛屽畬鎴愬悗錛屾兂鎶奵:\helloLib\娣誨姞鍒扮郴緇熺幆澧冨彉閲忕殑path閲屽ご錛岃繖鏍鳳紝鍦ㄤ換浣曞湴鏂硅緭鍏.exe鍙墽琛屻傚浣曞皢璺緞娣誨姞鍒扮郴緇熺幆澧冨彉閲忎腑錛?/P>
銆銆絳旓細浠ヤ笅浠g爜瀹炵幇錛?/P>
紼嬪簭浠g爜
ReadRegStr $0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path"
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$0;C:\hellolib"
銆銆鍙︾被鏂規硶涓錛氬啓娉ㄥ唽琛紝濡?/P>
紼嬪簭浠g爜
[HKEY_CLASSES_ROOT\Applications\a.exe\shell\open\command]
@="yourpath\a.exe"
銆銆鍙︾被鏂規硶浜岋細
紼嬪簭浠g爜
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\a.exe]
@="c:\helloLib\a.exe"
銆銆闂細鍦∟SIS涓浣曟墠鑳藉仛鍒版牴鎹浜庢敞鍐岃〃閿肩殑鍒ゆ柇鍐沖畾鏄惁鍐欏叆瀛椾覆錛屽鏋滃垽鏂嚭鏌愪釜key瀛樺湪錛屽垯鍐欏叆鐩稿簲鐨勫瓧涓詫紝濡傛灉涓嶅瓨鍦紝鍒欎笉鍐欏叆瀛椾覆銆備緥濡傦細鎴戝厛瑕佸垽鏂淗KLM SOFTWARE\nsis鈥濊繖涓猭ey瀛樹笉瀛樺湪銆傚鏋滃瓨鍦ㄥ垯鍐欏叆瀛椾覆鈥淒ispName:nsis鈥濓紝搴旇鏄敤鈥淲riteRegStr HKLM "SOFTWARE\nsis" "DispName" "nsis"鈥濄傚鏋滀笉瀛樺湪榪欎釜key錛屽垯涓嶅啓鍏ユ敞鍐岃〃錛岀戶緇笅闈㈢殑瀹夎銆?/P>
銆銆絳旓細浠ヤ笅浠g爜瀹炵幇錛?/P>
紼嬪簭浠g爜
ReadRegStr $0 HKLM SOFTWARE\nsis ""
銆IfErrors 0 +2
銆Goto +2
WriteRegStr HKLM "SOFTWARE\nsis" "DispName" "nsis"
銆銆闂細濡備綍鍒朵綔瀹夎鍖呯殑鏃跺欓渶瑕佽皟鐢ㄧ郴緇熷嚱鏁版潵媯嫻嬪綋鍓嶅畨瑁呭寘榪愯鐨勬搷浣滅郴緇熺殑鍐呯爜欏點?/P>
銆銆絳旓細浠ヤ笅浠g爜鏄劇ず緋葷粺璇█錛?/P>
紼嬪簭浠g爜
System::Call "Kernel32::GetSystemDefaultLangID(v ..) i .s"
Pop $0
IntOp $0 $0 & 0xFFFF
MessageBox MB_OK $0
銆銆闂細濡備綍鐢∟SIS娉ㄥ唽瀛椾綋錛?/P>
銆銆絳旓細浠ヤ笅浠g爜錛?/P>
紼嬪簭浠g爜
!include WinMessages.nsh
Section "MainSection" SEC01
File /oname=$FONTS\tahoma.ttf tahoma.ttf
Push "$FONTS\tahoma.ttf"
System::Call "Gdi32::AddFontResource(t s) i .s"
Pop $0
IntCmp $0 0 0 +2 +2
MessageBox MB_OK "娉ㄥ唽瀛椾綋澶辮觸"
SendMessage ${HWND_BROADcast} ${WM_FONTCHANGE} 0 0
SectionEnd
銆銆闂細濡備綍鐢?NSIS 瀹夎杈撳叆娉曘?/P>
銆銆絳旓細浠ヤ笅浠g爜錛?/P>
紼嬪簭浠g爜
SetOutPath $SYSDIR
File WBIME.ime
Push "浜旂瑪杈撳叆娉?
Push "$SYSDIR\WBIME.ime"
System::Call "Imm32::ImmInstallIME(t s, t s) i .s"
System::Call "Imm32::ImmIsIME(i s) i .s"
Pop $0
IntCmp $0 1 0 +3 +3
MessageBox MB_OK "杈撳叆娉曞畨瑁呮垚鍔?
Goto +2
MessageBox MB_OK "杈撳叆娉曞畨瑁呭け璐?