主頁 > 知識庫 > 利用JAVA實現(xiàn)DES加密算法

利用JAVA實現(xiàn)DES加密算法

熱門標(biāo)簽:南京外呼系統(tǒng)租用 寧夏外呼系統(tǒng)方案 智能語音外呼系統(tǒng)打電話 怎樣在地圖標(biāo)注自己的信息 電銷外呼系統(tǒng)違規(guī) 濟南電銷外呼防封卡怎么樣 高德地圖標(biāo)注生成 400電話怎么申請收費標(biāo)準(zhǔn) 400電話辦理2273649Z空間

DES加密介紹
DES是一種對稱加密算法,所謂對稱加密算法即:加密和解密使用相同密鑰的算法。DES加密算法出自IBM的研究,后來被美國政府正式采用,之后開始廣泛流傳,但是近些年使用越來越少,因為DES使用56位密鑰,以現(xiàn)代計算能力,24小時內(nèi)即可被破解。雖然如此,在某些簡單應(yīng)用中,我們還是可以使用DES加密算法,本文簡單講解DES的JAVA實現(xiàn)。

JAVA實現(xiàn)
加密
代碼有詳細解釋,不多廢話。
注意:DES加密和解密過程中,密鑰長度都必須是8的倍數(shù)

復(fù)制代碼 代碼如下:

        public byte[] desCrypto(byte[] datasource, String password) {           
                try{
                SecureRandom random = new SecureRandom();
                DESKeySpec desKey = new DESKeySpec(password.getBytes());
                //創(chuàng)建一個密匙工廠,然后用它把DESKeySpec轉(zhuǎn)換成
                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                SecretKey securekey = keyFactory.generateSecret(desKey);
                //Cipher對象實際完成加密操作
                Cipher cipher = Cipher.getInstance("DES");
                //用密匙初始化Cipher對象
                cipher.init(Cipher.ENCRYPT_MODE, securekey, random);
                //現(xiàn)在,獲取數(shù)據(jù)并加密
                //正式執(zhí)行加密操作
                return cipher.doFinal(datasource);
                }catch(Throwable e){
                        e.printStackTrace();
                }
                return null;
        }

解密
代碼有詳細注釋,不多廢話
復(fù)制代碼 代碼如下:

        private byte[] decrypt(byte[] src, String password) throws Exception {
                // DES算法要求有一個可信任的隨機數(shù)源
                SecureRandom random = new SecureRandom();
                // 創(chuàng)建一個DESKeySpec對象
                DESKeySpec desKey = new DESKeySpec(password.getBytes());
                // 創(chuàng)建一個密匙工廠
                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                // 將DESKeySpec對象轉(zhuǎn)換成SecretKey對象
                SecretKey securekey = keyFactory.generateSecret(desKey);
                // Cipher對象實際完成解密操作
                Cipher cipher = Cipher.getInstance("DES");
                // 用密匙初始化Cipher對象
                cipher.init(Cipher.DECRYPT_MODE, securekey, random);
                // 真正開始解密操作
                return cipher.doFinal(src);
        }

測試場景
例如,我們可以利用如上函數(shù)對字符串進行加密解密,也可以對文件進行加密解密,如:
復(fù)制代碼 代碼如下:

                //待加密內(nèi)容
                String str = "測試內(nèi)容";
                //密碼,長度要是8的倍數(shù)
                String password = "12345678";
                byte[] result = DESCrypto.desCrypto(str.getBytes(),password);
                System.out.println("加密后內(nèi)容為:"+new String(result));

                //直接將如上內(nèi)容解密
                try {
                        byte[] decryResult = des.decrypt(result, password);
                        System.out.println("加密后內(nèi)容為:"+new String(decryResult));
                } catch (Exception e1) {
                        e1.printStackTrace();
                }

您可能感興趣的文章:
  • 分享Java常用幾種加密算法(四種)
  • java自帶的MessageDigest實現(xiàn)文本的md5加密算法
  • 使用java自帶des加密算法實現(xiàn)文件加密和字符串加密
  • java實現(xiàn)MD5加密算法的實例代碼
  • java實現(xiàn)的AES加密算法完整實例
  • java異或加密算法
  • RSA加密算法java簡單實現(xiàn)方法(必看)
  • 詳解Java中實現(xiàn)SHA1與MD5加密算法的基本方法
  • JAVA實現(xiàn)caesar凱撒加密算法
  • java實現(xiàn)同態(tài)加密算法的實例代碼

標(biāo)簽:惠州 仙桃 唐山 茂名 平頂山 潛江 貴港 長白山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用JAVA實現(xiàn)DES加密算法》,本文關(guān)鍵詞  利用,JAVA,實現(xiàn),DES,加密,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用JAVA實現(xiàn)DES加密算法》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用JAVA實現(xiàn)DES加密算法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章