亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

在InstallShield中加密字符串,在C#中解密

系統 2139 0
?????????一般情況下,Asp.Net程序中,數據庫連接字符串大多存儲在配置文件中。如果程序不是手工發布,而是通過安裝程序部署,那么通常在安裝過程中需要用戶輸入數據庫管理員帳號和密碼,以便安裝數據庫。同時將管理員帳號和密碼以及數據庫服務器地址(或者數據庫連接字符串)寫入配置文件中。但是如果不加密,尤其是數據庫管理員密碼,若以明碼形式存儲,極容易被竊取。
???????? 這就需要對字符串進行加密處理。但是在安裝制作軟件(我用的是InstallShield 12)中沒有提供專用的加密方法,而且在InstallShield中加密過的字符串在Asp.Net(我用的是C#編寫Asp.Net)中要能夠被解密,則必須用兩者通用的加密解密方法。因此我想到,每個字符的ASCII碼都是通用的,只要在InstallShield中對字符的ASCII碼進行處理,比如加一或移位,得到一個新的字符串,再到C#?中進行逆向操作,就可以還原為原來的字符串。
????????在尋思用什么方法加密的時候,偶然想到曾經在一外網站上下載的一段代碼,趕緊找將出來(后來還幸運地回憶起那個網站,那就是非常有名的 InstallSite ,大家可以上去逛逛,那里有很多InstallShield的腳本示例代碼,可以下載參考參考) ,他的源碼如下:
////////////////////////////////////////////////////////////////////////////// /
//
//
// ?Function:?String2Password
//
//
//
// ??Purpose:?This?function?takes?a?string?and?returns?a?numeric?equivalent??? //
// ???????????of?all?the?character's?ASCII?values?added?together.
//
// ???????????(Note:?InstallShield?may?use?different?values?than?the?ASCII???? //
// ???????????table I?did?not?verify?this.)
//
//
//
////////////////////////////////////////////////////////////////////////////// /
function?String2Password(?nAnswer,?szName?)
???? STRING?szRight,?szLeft;
???? CHAR???cChar;
???? NUMBER?nLength;

?begin

?????? nAnswer?
= ? 0 ;
?????? nLength?
= ?StrLength(szName);
???
??? while ?(nLength? > ? 0 )
????????StrSub(szRight,?szName,?
1 ,?(nLength - 1 ));
????????StrSub(szLeft,?szName,?
0 ,? 1 );
????????cChar?
= ?szLeft[ 0 ];
????????
if ?(cChar? < ? 0 )?then
???????????? cChar?
= ?cChar? & ? 255 ;
????????endif;
????????szName?
= ?szRight;
????????nAnswer?
= ?nAnswer? + ?cChar;
????????nLength?
= ?nLength? - ? 1 ;
???endwhile;

?end;

????????這段代碼返回的是一個求和的數字,并不完全符合我們的要求,而且我發現cChar=szLeft[0]的取值是有問題的.大家注意到沒有,代碼作者也在注釋中有說明.也不知道 InstallSite 為什么把這種有問題的代碼作放在網站上,還居然作為Sample供下載.
??????? 于是將其改造了一番:
???????
?/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//???
//??????????????????? string2password.rul
//?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1
function ? STRING ?String2Password(szName?)
?2 ? STRING ?szRight , ?szLeft , szAnswer;
?3 ?CHAR???cChar;
?4 ? NUMBER ?nLength;
?5
?6 ?begin
?7
?8 ???szAnswer? = ? "" ;
?9 ???nLength? = ?StrLength(szName);
10 ??? while ?(nLength? > ? 0 )
11 ??????StrSub(szRight , ?szName , ? 1 , ?(nLength - 1 ));
12 ??????StrSub(szLeft , ?szName , ? 0 , ? 1 );
13 ??????cChar? = ?STRTOCHAR(szLeft);
14 ??????cChar? = ?cChar? + 1 ;
15 ??????szName? = ?szRight;
16 ??????CharReplace(szLeft , STRTOCHAR(szLeft) , cChar , 0 )
17 ??????szAnswer? = ?szAnswer? + ?szLeft;
18 ??????nLength? = ?nLength? - ? 1 ;
19 ??? endwhile ;
20 ??? return ?szAnswer;
21 ? end ;

??????? 至于C#的解碼就很簡單了,這里也一并貼出來,湊個數吧:
?1 ? public ? string ?password2string( string ?sPass)
?2 ???? {
?3 ???????? string ?sResult? = ? string .Empty;
?4 ???????? for ?( int ?i? = ? 0 ;?i? < ?sPass.Length;?i ++ )
?5 ???????? {
?6 ???????????? int ?num? = ?( int ) char .Parse(sPass.Substring(i, 1 ))? - ? 1 ;
?7 ????????????sResult += (( char )num).ToString();
?8 ????????}

?9 ???????? return ?sResult;
10 ????}

??????? 小結:這里為了說明問題只是用了加1減1的方法,非常簡單.我正在研究基于XXTea的加密方法,等有了結果在公布出來.

在InstallShield中加密字符串,在C#中解密


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美高清无砖专区欧美精品 | 成人性色大片 | 婷婷激情综合 | 日本不卡专区 | 亚洲精品高清在线一区二区三区 | 久久久综合久久 | 2021国产精品系列一区二区 | 国产精品青草久久久久婷婷 | 99热成人精品热久久669 | 亚洲欧美精品在线 | 国产精品一区在线免费观看 | 色婷婷久久综合中文久久一本` | 婷婷五 在线播放 | 奇米影视88 | 欧美亚洲国产精品久久久 | 自拍视频精品 | 91尤物国产尤物福利在线 | 99久久99久久久99精品齐 | 国产精品一区二区国产 | 99久久精品全部 | 婷婷四房色播 | 奇米777在线 | 99精品视频看国产啪视频 | 夜夜夜操 | 性一级录像 | 精品一区二区三区视频在线观看 | 日本一区二区三区高清在线观看 | 在线久综合色手机在线播放 | 99久热在线精品视频播 | 欧美日韩看片 | 成人在线亚洲 | 欧美影视一区 | 天天操比 | 99视频网| 久久久精品麻豆 | 国产欧美二区 | 精品国产一区二区三区在线观看 | 欧美日本在线视频 | 狠狠色噜噜狠狠狠狠色综合网 | 国产人伦视频在线观看 | 奇米视频在线 |