<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 72, comments - 66, trackbacks - 0, articles - 0

    通過/etc/init.d/iptables status命令查詢是否有打開80端口,如果沒有可通過兩種方式處理:
    1.修改vi /etc/sysconfig/iptables命令添加使防火墻開放80端口
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    2.關閉防火墻
    /etc/init.d/iptables stop 
    #start 開啟 
    #restart 重啟

    posted @ 2008-11-25 17:44 Fingki.li 閱讀(671) | 評論 (0)編輯 收藏

    Backup to Script:
    首先切換到postgres用戶:
    liqingfeng@liqingfeng:~$ su postgres
    口令: 輸入密碼
    postgres@liqingfeng:/home/liqingfeng$
    然后輸入backup命令:
    pg_dump -U[username] -d -f[way of script file] [database name]
    例如:pg_dump -Upostgres -d -f/home/liqingfeng/test.sql testdb
    這樣數據庫testdb將以sql腳本形式backup到/home/liqingfeng/test.sql中。
    Restore from Script:
    還是首先要切換到postgres用戶下,輸入命令:
    psql -U[username] -d[database name] -f[way to an existing script file]
    例如:
    psql -Upostgres -dtestdb -f/home/liqingfeng/test.sql






    posted @ 2008-11-25 10:13 Fingki.li 閱讀(3719) | 評論 (0)編輯 收藏

    當進行大并發的壓力測試時,經常會出現如下Exception:Too many open files.
    查閱資料,google baidu.
    首先感謝demo的評論,使我對這個問題有了新的認識。
    經過再次查找,發現這個問題的出現原因是system對打開files數量的限制問題。
    用 ulimit -a 命令可以查看當前所有資源限制
    fingki@ubuntu:~$ ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 15863
    max locked memory       (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 15863
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    fingki@ubuntu:~$
    可以看出,對open files的限制數是1024,我們可以通過修改這個值來增加可以打開的文件數。
    最簡單的修改方式就是用ulimit -n 命令,
    比如我打算將其改為2048,用 ulimit -n 2048.
    當你把open files的值增大到一定程度,你的Too many open files就不會再出現了。

    而對于tcp_fin_timeout,是合tcp連接相關的,當你有大量tcp連接時,或許有些性能改善;
    tcp_fin_timeout,默認情況下,win為4 min,linux為60 sec.
    可以把其相應設置短一些,以增加系統性能。

    in Windows

    1. Run regedit to start the Registry Editor
    2. Locate the following key: HKEY_LOCAL_MACHINE"System"CurrentControlSet"Services"tcpip"Parameters
    3. Add a new value named TcpTimedWaitDelay asa decimal and set the desired timeout in seconds (30-300)
    4. Reboot

    in Linux

    1. Update the configuration value by running (30 seconds used in the example)
      echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
    2. Restart the networking component, for example by running
      /etc/init.d/networking restart  or  service network restart
    在linux下,經常會有權限問題使設置不能成功,盡管你用了sudo。
    解決辦法就是先 su root,在root用戶下來執行操作,這樣就ok了。
    再有就是可能忘記root密碼了,那就 sudo passwd root,來設置一個新密碼。

    根據進一步的研究發現:服務器默認情況下對進程的處理也是有限制的,要想server處理更多用戶進程就需要調整相應參數。
    這里面有兩個文件要特別注意,
    一個是    /etc/security/limits.conf
    另一個    /etc/sysctl.conf

    當我們用ulimit -a命令可以查看 open files(默認為1024)和max user processes(默認也為1024),
    所以默認情況下這個server只允許同時打開1024個文件,處理1024個用戶進程,
    若要 臨時 改變這兩個參數值,可以使用 ulimit -n 10240 ,ulimit -u 10240,
    若要 長久 改變這兩個參數值,就要修改/ect/security/limits.conf,在文件中加上兩行:
    * - nofile 102400
    * - nproc 102400

    而對于大量使用tcp連接的應用來說,也需要對/etc/sysctl.conf中的參數進行相應優化:
    net/ipv4/ip_always_defrag = 1
    net.ipv4.ip_local_port_range = 1024    65000
    net.ipv4.tcp_max_syn_backlog = 102400
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    上面是我根據我的需求的一些參數調整,你可以根據你的需求來調整相應參數值。
    然后執行 sysctl -p命令可立即生效。sysctl -a可查看參數值。

    參考 :http://www.javaeye.com/topic/65175

    posted @ 2008-10-22 19:13 Fingki.li 閱讀(5837) | 評論 (7)編輯 收藏


    1、Scp 很好用的遠程文件安全傳輸命令
       命令格式:scp [-r] 源文件路徑 目標文件路徑
                 源文件路徑:username@hostname:文件路徑 For example:fingki2@192.168.0.2:test/a.txt (如果是本地可直接寫相應路徑)
                 目標文件路徑:username@hostname:文件路徑 For example:fingki3@192.168.0.3:test/a.txt (如果是本地可直接寫相應路徑)
                 -r:如果是傳目錄 就要加上這個參數
                 要求:遠程機器必須打開22端口
    2、ssh 很好的linux服務器登錄命令 secure shell
        簡易命令格式:ssh username@hostname 然后輸入密碼即可進入系統。
        有時你會遇到如下問題:
    The authenticity of host '172.0.x.xxx (172.0.x.xxx)' can't be established.
    RSA key fingerprint is 1f:c9:78:0a:ce:e2:e5:10:2c:b5:f4:33:19:fa:be:ec.
    Are you sure you want to continue connecting (yes/no)?

        如果你是第一次在這臺機器上使用ssh命令,輸入yes回車后,就可以輸入密碼登錄了。
        如果輸入yes后仍有問題,你可以到 ~/.ssh/下找到文件known_hosts,清除文件里面的內容,重試即可。

    3、vi列模式編輯:

      用命令打開文本:vim test.txt
      按 Esc 取消當前模式,
      按Ctrl + v 進入這種模式,
      將光標移到指定列位置,
      然后按方向鍵選定指定列,進行編輯(刪除等)

    4. 批量刪除
    如:刪除所有名字包含test的文件
    find ./ -name *test* | xargs rm -f

    posted @ 2008-09-18 17:31 Fingki.li 閱讀(1828) | 評論 (0)編輯 收藏

    前兩天一個朋友問我,為什么要寫blog?
    是呀,為什么要寫blog呢?為什么大家都在寫blog呢?
    我來說說我的想法吧。
    最開始的時候,我純粹是跟風,大家都在寫blog,自己也就想玩玩,隨便申請了一個,然后寫幾篇不相干的東西,然后忘記了;
    后來,工作中經常遇到一些技術問題,想把它記錄下來,想到了blog這種方式,很不錯,很方便,所以又開始找個相關的blog,開始寫;
    再后來,發現有好多的問題都是在別人的blog中找到的答案,很羨慕,很感激,于是也開始把自己的一些經驗拿出來和大家分享;
    慢慢的,當發現自己的文章也曾幫助過別人時,感覺很高興;于是,工作不是很忙時,就會寫一些東西和大家分享;
    我是blog的受益者,我也是blog的貢獻者!正是blog,使我們可以互補技術上的缺點,分享工作中的經驗,讓我們更快的進步!
    于是有感于blog: 是分享,是共同進步!

    posted @ 2008-09-07 23:05 Fingki.li 閱讀(1423) | 評論 (2)編輯 收藏

    About Exception:
    An invalid XML character (Unicode: 0x0) was found in the element content of the document.

    問題描述:
    當我們用
    byte[] info ;
    DocumentHelper.parseText(new String(info));
    將一個字節數組轉成字符串再轉成Document(XML格式)時,常常會遇到上述異常。
    特別是當字符串有加、解密,或編碼等情況時。

    原因:
    從異常來看,很明顯是因為字節數組中存在 Unicode: 0x0,而這個字節在Xml中被認為是非法字符。

    對于一些經過編碼或加、解密的字符串中,很容易會出現這個 0x0,
    特別是在加、解密中,經常會涉及到字符填充,而填充物通常是 0x0,
    需對于0x00-0x20 都會引起一定的問題,又因為這些字符不可見,因此用通常的編輯器進行編輯的時候找不到問題所在。
    而在轉成String后也覺察不到任何異常。
    所以在轉成XML格式時要對字符串進行檢測:
    *  Verify that no character has a hex value greater than 0xFFFD, or less than 0x20.
    * Check that the character is not equal to the tab ("t), the newline ("n), the carriage return ("r), or is an invalid XML character below the range of 0x20. If any of these characters occur, an exception is thrown.

    pubic void CheckUnicodeString(String value)
        {
        for (int i=0; i < value.Length; ++i) {
            if (value[i] > 0xFFFD)
            {
                throw new Exception("Invalid Unicode");//或者直接替換掉0x0 value[i]='"n';
            }
            else if (value[i] < 0x20 && value[i] != '"t' & value[i] != '"n' & value[i] != '"r')
            {
                throw new Exception("Invalid Xml Characters");//或者直接替換掉0x0 value[i]='"n';
            }
        }

    相關資源:
    http://msdn.microsoft.com/en-us/library/k1y7hyy9.aspx
    http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html

    posted @ 2008-09-04 15:18 Fingki.li 閱讀(12203) | 評論 (0)編輯 收藏

    keystore是個密鑰存儲庫,我們經常用他來存儲非對稱密鑰,但有時我們也需要它來存儲一些對稱密鑰。
     public void createKeyStore() {



    try {



    KeyGenerator keyGen = KeyGenerator.getInstance("DES");







    SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");







    keyGen.init(56, random);







    SecretKey secretKey = keyGen.generateKey();







    KeyStore ks = KeyStore.getInstance("jceks");







    char password[] = {'c', 'h', 'a', 'n', 'g', 'e','i','t' };







    // Create an empty keystore



    ks.load(null, password);







    KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(secretKey);







    ks.setEntry("myKey", skEntry, new KeyStore.PasswordProtection(password));



     



    // store away the keystore



    java.io.FileOutputStream fos =



    new java.io.FileOutputStream("mystore");



    ks.store(fos, password);



    fos.close();







    } catch (NoSuchAlgorithmException nsaex) {



    nsaex.printStackTrace(System.err);



    } catch (NoSuchProviderException nspex) {



    nspex.printStackTrace(System.err);



    } catch (KeyStoreException ksex) {



    ksex.printStackTrace(System.err);



    } catch (CertificateException cex) {



    cex.printStackTrace(System.err);



    } catch (IOException ioex) {



    ioex.printStackTrace(System.err);



    }



    }







    上面的例子是存一個DES密鑰。



    需要注意的就是這個keystore的類型,必須是jceks,



    之前我就是使用默認的jks,導致報錯。





    posted @ 2008-09-02 10:42 Fingki.li 閱讀(797) | 評論 (0)編輯 收藏

    以往有聽說過“Microsoft Windows、FreeBSD不安全隨機數生成器信息泄露漏洞”之類的文章,大都是因為隨機函數存在漏洞生成不安全的隨機,導致可預測的加密密鑰。
    About Random
    隨機數是密碼學的一個重要部分,它通常作為初始化向量用于密鑰生成中。有許多測試根據數字計算給定數字序列的隨機性,它們考慮給定數定在序列中出現的周期,做更細致的測量,包括相同數字或其他重復形式出現的周期。
    但統計隨機性的要求與加密隨機性不同。
    一個數字序列在統計上是隨機的,但如果攻擊者可以推算出數字的序列(通過了解使用的算法和隨機種子值),那么加密是變得不安全了。
    About Pseudo Random 偽隨機數
    對于一串隨機的數字,最常見的描述就是沒有從前一個數字推算出后一個數字的數學方法。最好的隨機數是從物理過程中獲得的,因為實際物理程才是真正隨機的。事實上,一些隨機數生成器就是使用硬件設置來實現,如音頻輸入或二極管。
        從設計上來說,計算機是很確定的,因此不是生成隨機數的就好選擇。它們通常求助于一個生成統計上隨機的數字串的算法。為了確定在該算法中使用的輸入值,它們要求用戶提供一個種子值,這通常來自于系統時鐘、網卡MAC地址以及其他不同的系統參數。
        這些隨機數字很適合于計算機游戲中的示例數據或建模物理過程。不過,它們不適合于加密。它的弱點包括以下幾點:
    ●     偽隨機數是周期性的。最終將重復數字序列。
    ●     如果使用相同的種子值,將接收到序列完全一樣的“隨機”數。因此,隨機序列與種子值一樣多。
    ●     隨機數可使用逆向工程。運用算法知識,強力攻擊會立即猜測到種子值。如果種子值和時間之間有相關性,攻擊者將會推算出所有后面的“隨機”數。
     
    偽隨機數是出現許多臭名昭著的攻擊的主要原因。破解56 位DES從1997年1月的96 天到1999 年1月的22 小時15 分鐘,由于DES使用的偽隨機數生成算法導致了這個結果,有一種攻擊就是針對賭博應用程序,這種應用程序使用一個隨機數種子值來對紙牌進行排序,而洗牌的可能性是有限的。在看完開始的幾張牌后,用戶可以將當前發的牌與某種可能的洗牌序列匹配,來確定剩下牌的順序。

    另一個著名的例子就是Netscape Navigator 早期版本中的取決于時間的隨機數字生成器,它泄露了動態生成的用于加密運用SSL的會話中數據的密鑰。
    About Random encrypted 加密的隨機數
    隨機數生成是許多加密操作不可分割的組成部分。例如,加密密鑰需要盡可能地隨機,以便使它們很難被復制。加密隨機數生成器必須生成在計算上無法進行推算(低于 p < .05 的概率)的輸出;即,任何推算下一個輸出位的方法不得具有比隨機猜測更高的成功幾率。
    為了說明一連串的隨機數字是加密安全的,必須使得用戶不可能通過計算重新生成同樣序列的隨機數。遺憾的是,運用偽隨機數字,可以很容易地重新生成同樣的序列。用戶需要知道的知識就是偽隨機數生成器算法和種子值。
        通過加密保護數據基于加密算法和更為隨機的種子值就是本文要提出的方法,一個帶加密功能的隨機數產生器,可以應用于需要加密隨機數的場合.為了構成種子值,需要用不同的值組合成一個系統范圍內的種子值。這些值包括調用的應用程序可以提供的位,例如鼠標或鍵盤動作之間的用戶反應時間、象進程ID和線程ID這樣的系統和用戶數據、系統時鐘、系統計數器、自由磁盤集群屬和散列的用戶環境塊。接著使用SHA-1散列這個值,輸出用于創建一個隨機數據流(用于更新系統種子值)。這可以起作用,是因為散列值生成了看似隨機的數據,只改變源文檔(種子值)中的一個位,任何兩個輸出的散列共享它們50%的位,盡管兩個輸出只有一位之差。當然,從理論上講,有些過程還是周期性的。例如磁盤搜索時間看似隨機的,實際取決于易于確定的因素,可以被推測出來。為了獲取更好的隨機數生成,可以采用硬件生成器,例如Intel的隨機數生成器。
       
    說明:
        創建加密安全的隨機數需要更多的時間,這意味著如果需要快速地在一個短時間內生成大量隨機數(例如百萬級的數據)是不適合的。在一個簡單測試中,用本文提到的RNG生成一百萬個隨機數的時間花費差不多是偽隨機數生成器所用時間的八倍之多。

    相關資源:http://www.xfocus.net/articles/200209/451.html

    posted @ 2008-08-28 23:46 Fingki.li 閱讀(875) | 評論 (0)編輯 收藏

    到目前為止,中國已奪26金啦,中國加油!

    posted @ 2008-08-15 23:11 Fingki.li 閱讀(235) | 評論 (1)編輯 收藏

    在ubuntu-server下安裝phppgadmin遇到如下問題,記錄如下:
    首先安裝postgresql很簡單,sudo apt-get instatll postgresql
    安裝完成后,可能需要更改默認用戶postgre的密碼,這個可以查看我之前的文章。
    然后,安裝client,我打算使用phppgadmin,
    命令行下:sudo apt-get install phppgadmin
    完成后,默認同時安裝了它所依賴的apache2。
    在瀏覽器中輸入:http://localhost,顯示 It works.這說明apache2在正常工作。
    但輸入http://localhost/phppgadmin,顯示無法找到該頁,
    進入 /var/www中查看,只有index.html,所以肯定找不到phpgpadmin,
    所以需要做link,
    執行:sudo find / -name phppgadmin,查找出phppgadmin的位置,
    然后做連接: sudo ln -s /usr/share/phppgadmin phppgadmin
    之后再試瀏覽器中訪問http://localhost/phppgadmin,這次可以找到文件了,但提示是否下載php文件。
    一同事說遇到過這樣問題,說是少個libapache2-mod-php5,查看一下已經安裝了。
    于是google一番,得知:如果當您瀏覽PHP網頁的時候,瀏覽器提示您是否下載PHP文件而不是去顯示它的時候,就可能是您沒有安裝libapache2-mod-php5。當您 安裝PHP5的時候,它會被默認的安裝進去的,如果您不小心的將它遺忘了。您就需要去將它打開,sudo a2enmod php5,然后使用sudo /etc/init.d/apache2 restart來重新啟動APACHE。
    果然重啟apache2后,可以正常訪問了。






    posted @ 2008-07-31 17:43 Fingki.li 閱讀(1380) | 評論 (1)編輯 收藏

    僅列出標題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
    主站蜘蛛池模板: 破了亲妺妺的处免费视频国产| 日韩中文字幕在线免费观看 | 9久9久女女免费精品视频在线观看| 亚洲第一AAAAA片| 国产一区二区免费| 亚洲乳大丰满中文字幕| 亚洲国产精品一区二区久| 久久免费的精品国产V∧| 亚洲理论精品午夜电影| aⅴ在线免费观看| 中文字幕乱码亚洲无线三区| 午夜色a大片在线观看免费| 精品亚洲成A人在线观看青青| 日韩免费视频播播| 一区二区三区在线免费| 亚洲色成人中文字幕网站| 久久精品无码精品免费专区| 亚洲福利电影一区二区?| 免费看黄视频网站| 亚洲av日韩精品久久久久久a| 亚洲成AV人在线观看网址| 伊人免费在线观看高清版| 国产高清在线免费| 羞羞视频网站免费入口| 亚洲精品久久久www| 无码人妻丰满熟妇区免费| 亚洲av无码专区在线| 亚洲国产a级视频| 99久9在线|免费| 亚洲区日韩精品中文字幕| 国产jizzjizz视频全部免费| 国产在线精品观看免费观看| 亚洲精品白色在线发布| 全黄a免费一级毛片人人爱| 亚洲a级片在线观看| 亚洲国产成人久久综合野外| 67194成手机免费观看| 无套内射无矿码免费看黄| 久久精品国产亚洲| 国产成人免费A在线视频| 国产成人精品无码免费看|