精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

java密碼框代碼怎么寫 java中密碼框組件

用java寫個文件加密的代碼該怎么寫

import java.awt.*;

在潢川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),潢川網(wǎng)站建設(shè)費用合理。

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.security.*;

import javax.crypto.*;

import javax.crypto.spec.*;

/**

文件名:FileEncrypter.java

JDK:1.40以上

說明:文件加密

加密方法:三重DES加密

加密過程:對選中的文件加密后在同文件夾下生成一個增加了".tdes"

擴展名的加密文件

解密過程:對選中的加密文件(必須有".tdes"擴展名)進行解密

*/

public class FileEncrypter extends JFrame{

public static final int WIDTH = 550;

public static final int HEIGHT = 200;

public static void main(String args[]) {

FileEncrypter fe = new FileEncrypter();

fe.show();

}

FileEncrypter(){

this.setSize(WIDTH,HEIGHT);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

Toolkit tk = Toolkit.getDefaultToolkit();

Dimension screenSize = tk.getScreenSize();

this.setLocation((screenSize.width - WIDTH)/2,

(screenSize.height - HEIGHT)/2);

this.setTitle("文件加密器(TriDES)");

Container c = this.getContentPane();

c.setLayout( new FlowLayout());

final FilePanel fp = new FilePanel("文件選擇");

c.add(fp);

final KeyPanel pp = new KeyPanel("密碼");

c.add(pp);

JButton jbE = new JButton("加密");

c.add(jbE);

jbE.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event){

File file = new File(fp.getFileName());

if (file.exists())

encrypt(file.getAbsoluteFile(),pp.getKey());

else

JOptionPane.showMessageDialog(

null,"請選擇文件!","提示",JOptionPane.OK_OPTION);

}

});

JButton jbD = new JButton("解密");

c.add(jbD);

jbD.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event){

File file = new File(fp.getFileName());

if (file.exists())

decrypt(file.getAbsoluteFile(),pp.getKey());

else

JOptionPane.showMessageDialog(

null,"請選擇文件!","提示",JOptionPane.OK_OPTION);

}

});

}

/**

加密函數(shù)

輸入:

要加密的文件,密碼(由0-F組成,共48個字符,表示3個8位的密碼)如:

AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746

其中:

AD67EA2F3BE6E5AD DES密碼一

D368DFE03120B5DF DES密碼二

92A8FD8FEC2F0746 DES密碼三

輸出:

對輸入的文件加密后,保存到同一文件夾下增加了".tdes"擴展名的文件中。

*/

private void encrypt(File fileIn,String sKey){

try{

if(sKey.length() == 48){

byte[] bytK1 = getKeyByStr(sKey.substring(0,16));

byte[] bytK2 = getKeyByStr(sKey.substring(16,32));

byte[] bytK3 = getKeyByStr(sKey.substring(32,48));

FileInputStream fis = new FileInputStream(fileIn);

byte[] bytIn = new byte[(int)fileIn.length()];

for(int i = 0;iFILEIN.LENGTH();I++){

bytIn[i] = (byte)fis.read();

}

//加密

byte[] bytOut = encryptByDES(encryptByDES(

encryptByDES(bytIn,bytK1),bytK2),bytK3);

String fileOut = fileIn.getPath() + ".tdes";

FileOutputStream fos = new FileOutputStream(fileOut);

for(int i = 0;iBYTOUT.LENGTH;I++){

fos.write((int)bytOut[i]);

}

fos.close();

JOptionPane.showMessageDialog(

this,"加密成功!","提示",JOptionPane.OK_OPTION);

}else

JOptionPane.showMessageDialog(

this,"密碼長度必須等于48!","錯誤信息",JOptionPane.ERROR_MESSAGE);

}catch(Exception e){

e.printStackTrace();

}

}

/**

解密函數(shù)

輸入:

要解密的文件,密碼(由0-F組成,共48個字符,表示3個8位的密碼)如:

AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746

其中:

AD67EA2F3BE6E5AD DES密碼一

D368DFE03120B5DF DES密碼二

92A8FD8FEC2F0746 DES密碼三

輸出:

對輸入的文件解密后,保存到用戶指定的文件中。

*/

private void decrypt(File fileIn,String sKey){

try{

if(sKey.length() == 48){

String strPath = fileIn.getPath();

if(strPath.substring(strPath.length()-5).toLowerCase().equals(".tdes"))

strPath = strPath.substring(0,strPath.length()-5);

else{

JOptionPane.showMessageDialog(

this,"不是合法的加密文件!","提示",JOptionPane.OK_OPTION);

return;

}

JFileChooser chooser = new JFileChooser();

chooser.setCurrentDirectory(new File("."));

chooser.setSelectedFile(new File(strPath));

//用戶指定要保存的文件

int ret = chooser.showSaveDialog(this);

if(ret==JFileChooser.APPROVE_OPTION){

byte[] bytK1 = getKeyByStr(sKey.substring(0,16));

byte[] bytK2 = getKeyByStr(sKey.substring(16,32));

byte[] bytK3 = getKeyByStr(sKey.substring(32,48));

FileInputStream fis = new FileInputStream(fileIn);

byte[] bytIn = new byte[(int)fileIn.length()];

for(int i = 0;iFILEIN.LENGTH();I++){

bytIn[i] = (byte)fis.read();

}

//解密

byte[] bytOut = decryptByDES(decryptByDES(

decryptByDES(bytIn,bytK3),bytK2),bytK1);

File fileOut = chooser.getSelectedFile();

fileOut.createNewFile();

FileOutputStream fos = new FileOutputStream(fileOut);

for(int i = 0;iBYTOUT.LENGTH;I++){

fos.write((int)bytOut[i]);

}

fos.close();

JOptionPane.showMessageDialog(

this,"解密成功!","提示",JOptionPane.OK_OPTION);

}

}else

JOptionPane.showMessageDialog(

this,"密碼長度必須等于48!","錯誤信息",JOptionPane.ERROR_MESSAGE);

}catch(Exception e){

JOptionPane.showMessageDialog(

this,"解密失敗,請核對密碼!","提示",JOptionPane.OK_OPTION);

}

}

/**

用DES方法加密輸入的字節(jié)

bytKey需為8字節(jié)長,是加密的密碼

*/

private byte[] encryptByDES(byte[] bytP,byte[] bytKey) throws Exception{

DESKeySpec desKS = new DESKeySpec(bytKey);

SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");

SecretKey sk = skf.generateSecret(desKS);

Cipher cip = Cipher.getInstance("DES");

cip.init(Cipher.ENCRYPT_MODE,sk);

return cip.doFinal(bytP);

}

/**

用DES方法解密輸入的字節(jié)

bytKey需為8字節(jié)長,是解密的密碼

*/

private byte[] decryptByDES(byte[] bytE,byte[] bytKey) throws Exception{

DESKeySpec desKS = new DESKeySpec(bytKey);

SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");

SecretKey sk = skf.generateSecret(desKS);

Cipher cip = Cipher.getInstance("DES");

cip.init(Cipher.DECRYPT_MODE,sk);

return cip.doFinal(bytE);

}

/**

輸入密碼的字符形式,返回字節(jié)數(shù)組形式。

如輸入字符串:AD67EA2F3BE6E5AD

返回字節(jié)數(shù)組:{173,103,234,47,59,230,229,173}

*/

private byte[] getKeyByStr(String str){

byte[] bRet = new byte[str.length()/2];

for(int i=0;iSTR.LENGTH()

Integer itg =

new Integer(16*getChrInt(str.charAt(2*i)) + getChrInt(str.charAt(2*i+1)));

bRet[i] = itg.byteValue();

}

return bRet;

}

/**

計算一個16進制字符的10進制值

輸入:0-F

*/

private int getChrInt(char chr){

int iRet=0;

if(chr=="0".charAt(0)) iRet = 0;

if(chr=="1".charAt(0)) iRet = 1;

if(chr=="2".charAt(0)) iRet = 2;

if(chr=="3".charAt(0)) iRet = 3;

if(chr=="4".charAt(0)) iRet = 4;

if(chr=="5".charAt(0)) iRet = 5;

if(chr=="6".charAt(0)) iRet = 6;

if(chr=="7".charAt(0)) iRet = 7;

if(chr=="8".charAt(0)) iRet = 8;

if(chr=="9".charAt(0)) iRet = 9;

if(chr=="A".charAt(0)) iRet = 10;

if(chr=="B".charAt(0)) iRet = 11;

if(chr=="C".charAt(0)) iRet = 12;

if(chr=="D".charAt(0)) iRet = 13;

if(chr=="E".charAt(0)) iRet = 14;

if(chr=="F".charAt(0)) iRet = 15;

return iRet;

}

}

/**

文件選擇組件。

*/

class FilePanel extends JPanel{

FilePanel(String str){

JLabel label = new JLabel(str);

JTextField fileText = new JTextField(35);

JButton chooseButton = new JButton("瀏覽...");

this.add(label);

this.add(fileText);

this.add(chooseButton);

clickAction ca = new clickAction(this);

chooseButton.addActionListener(ca);

}

public String getFileName(){

JTextField jtf = (JTextField)this.getComponent(1);

return jtf.getText();

}

private class clickAction implements ActionListener{

clickAction(Component c){

cmpt = c;

}

public void actionPerformed(ActionEvent event){

JFileChooser chooser = new JFileChooser();

chooser.setCurrentDirectory(new File("."));

int ret = chooser.showOpenDialog(cmpt);

if(ret==JFileChooser.APPROVE_OPTION){

JPanel jp = (JPanel)cmpt;

JTextField jtf = (JTextField)jp.getComponent(1);

jtf.setText(chooser.getSelectedFile().getPath());

}

}

private Component cmpt;

}

}

/**

密碼生成組件。

*/

class KeyPanel extends JPanel{

KeyPanel(String str){

JLabel label = new JLabel(str);

JTextField fileText = new JTextField(35);

JButton chooseButton = new JButton("隨機產(chǎn)生");

this.add(label);

this.add(fileText);

this.add(chooseButton);

clickAction ca = new clickAction(this);

chooseButton.addActionListener(ca);

}

//返回生成的密碼(48個字符長度)

public String getKey(){

JTextField jtf = (JTextField)this.getComponent(1);

return jtf.getText();

}

private class clickAction implements ActionListener{

clickAction(Component c){

cmpt = c;

}

public void actionPerformed(ActionEvent event){

try{

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

kg.init(56);

Key ke = kg.generateKey();

byte[] bytK1 = ke.getEncoded();

ke = kg.generateKey();

byte[] bytK2 = ke.getEncoded();

ke = kg.generateKey();

byte[] bytK3 = ke.getEncoded();

JPanel jp = (JPanel)cmpt;

JTextField jtf = (JTextField)jp.getComponent(1);

jtf.setText(getByteStr(bytK1)+getByteStr(bytK2)+getByteStr(bytK3));

}catch(Exception e){

e.printStackTrace();

}

}

private String getByteStr(byte[] byt){

String strRet = "";

for(int i=0;iBYT.LENGTH;I++){

//System.out.println(byt[i]);

strRet += getHexValue((byt[i]240)/16);

strRet += getHexValue(byt[i]15);

}

return strRet;

}

private String getHexValue(int s){

String sRet=null;

switch (s){

case 0: sRet = "0";break;

case 1: sRet = "1";break;

case 2: sRet = "2";break;

case 3: sRet = "3";break;

case 4: sRet = "4";break;

case 5: sRet = "5";break;

case 6: sRet = "6";break;

case 7: sRet = "7";break;

case 8: sRet = "8";break;

case 9: sRet = "9";break;

case 10: sRet = "A";break;

case 11: sRet = "B";break;

case 12: sRet = "C";break;

case 13: sRet = "D";break;

case 14: sRet = "E";break;

case 15: sRet = "F";

}

return sRet;

}

private Component cmpt;

}

}

java 中密碼用 * 代替怎么寫代碼

密碼文本框用JPasswordField,輸入內(nèi)容自動為*號,當(dāng)然可以轉(zhuǎn)換成●或其他

用java做的界面點確定彈出輸入密碼框怎么寫啊要求6位數(shù)字

JTextField jtf=new JTextField();

String str=jtf.getText().trim();//密碼字符串

JOptionPane.showConfirmDialo(this,jtf ,"輸入密碼",JOptionPane.OK_CANCEL_OPTION );

if(str.length!=6){

JOptionPane.showMessageDialog(this,"請輸入6位密碼");

}

//直接打的,可能有錯誤

JSP中如何寫密碼輸入和確認(rèn)密碼時正確與否的Java判斷代碼?

在JSP中確定密碼是否相同的方法是通過js實現(xiàn)的。

將onchange事件添加到兩個文本框中,并在文本框的內(nèi)容發(fā)生更改時觸發(fā)事件,并在此事件中寫入判斷。

下面是步驟:

公共DOCTYPE HTML”- / / / / W3C XHTML 1.0 DTD過渡/ / EN " " "

HTML XMLNS = " "

meta HTTP - equiv =“Content -type”內(nèi)容=“文本/HTML”。Charset = gb2312 "/ 。

script type = "text/javascript" 。

函數(shù)checkpwd () {

Var p1 =文檔。Form1。Pwd1。價值;//獲取密碼框的值。

Var p2 =文檔。Form1。Pwd2。價值;//獲取重新輸入的密碼值。

{if (p1 = = ")

警告(“請輸入您的密碼!”);//密碼被檢測為空,輸入//被記錄。

文檔。Form1。Pwd1。關(guān)注();//專注于密碼框。

返回錯誤;//退出檢測功能。

}//如果允許一個空密碼,此條件可以被撤銷。

如果(p1 !=p2){//確定輸入值是否相同,并顯示錯誤消息。

文檔。GetElementByIdx_x(“味精”)。InnerHTML =“兩個輸入密碼不一致,請重新輸入”;//在div中顯示錯誤消息。

返回錯誤;

密碼是一樣的,你可以繼續(xù)下一步。

form name = "form1" 。

代碼:

確認(rèn)密碼:——onchange事件觸發(fā)檢測——。

div id = "MSG" style = "color: red " / div 。

/形式

The / body 。

/ HTML 。

JAVA swing 中 密碼框顯示其他符號怎么顯示? 我知道可以使用setEchoChar(' ')來實現(xiàn) 但完整代碼怎么寫

passwordField = new JPasswordField();

passwordField.setForeground(Color.BLACK); //設(shè)置輸入的字的顏色

passwordField.setEchoChar('*');

passwordField.setOpaque(false); //透明框

passwordField.setBounds(128, 189, 104, 21); //(空白框在窗體中x軸的位置,空白框在窗體中y軸的位置,空白框的寬,空白框的高)

contentPane.add(passwordField); //加入設(shè)置面板中


分享名稱:java密碼框代碼怎么寫 java中密碼框組件
本文鏈接:http://m.jcarcd.cn/article/hiedoi.html
主站蜘蛛池模板: 区二区在线播放 | 日韩一区二区www | 国产精品欧美亚洲区 | 国产拍拍拍网站 | 国产精品尤物视频 | 国产公妇仑在线观看 | 人人艹97| 国产草莓 | 国产欧美日韩不卡 | 日韩欧美伦理三级 | 无码精品国产第一区二区 | 区三区免费视频 | 日本中文字幕电影 | 国产一区人妖综合 | 日韩欧美中文综合 | 中文字幕精品一区 | 国产欧美日韩一级 | 国产人兽网站 | 福利导航站 | 国产视频 | 91国语精品自产拍 | 日韩免费网页版视频 | 国产精品100 | 日本一丰满一bbw | 国内自拍网 | 国产视频一区 | 精品亚洲中文免费 | 欧美综合国产日本 | 国产精品搭 | 日韩在线视频一 | 国产永久在线 | 午夜国产在线观看 | 精品一区二区国产 | 中文字幕乱倫视频 | 国产精品黄 | 国产久免费在线观看 | 国产亚洲精aa在线 | 九热在线观看高清 | 成人欧美在线观看 | 最新亚洲人成 | 午夜宅男在线永久 |