java中的key代码 java keys

java, 用key

import java.awt.AWTException;

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、大邑县网站维护、网站推广。

import java.awt.Robot;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class CharTest extends JFrame implements KeyListener {

JPanel pnlMain;

JTextField txtfile;

/**

* @param args

*/

public CharTest(){

pnlMain = new JPanel();

this.getContentPane().add(pnlMain);

txtfile = new JTextField(10);

pnlMain.add(txtfile);

txtfile.requestFocus();

txtfile.addKeyListener(this);

}

public void keyPressed(KeyEvent e) {

System.out.println(""+e.getKeyCode());

}

public void keyTyped(KeyEvent e) {

System.out.println(""+e.getKeyCode());

}

public void keyReleased(KeyEvent e) {

System.out.println(""+e.getKeyCode());

}

public static void main(String[] args) {

try {

Robot robot = new Robot();

JFrame f = new CharTest();

f.setSize(200, 300);

f.setVisible(true);

robot.keyPress(KeyEvent.VK_SHIFT );

robot.keyPress(KeyEvent.VK_1);

robot.keyRelease(KeyEvent.VK_1);

robot.keyRelease(KeyEvent.VK_SHIFT );

} catch (AWTException e) {

// TODO Auto-generated catch block

System.out.println("here");

e.printStackTrace();

}

}

}

以下为java读取key包的代码,可能会有问题,参照原理转成C++解密

这段代码好像就是一段读取数据的代码。没有看出有加密的过程啊?

这段代码做的事情就是

1.读包长 passLength = in.read() ^ Server.SEED

2.从流in中读passLength长度的数据内容。

唯一一个特别的地方就是

passLength = in.read() ^ Server.SEED

也仅仅只能把长度读出来进行了一下异或。

写包的时候也同样进行一样异或就可以了。

求帮忙算出一个java代码的key

没看明白你指的是什么key?加密的密钥向量吗?

如果是想用DES加密解密的话,可以使用下面的(加上注释后不让发,所以把注释去掉了,擦,还不让写“加密解密”这样的字)

import javax.crypto.Cipher;

import javax.crypto.SecretKey;

import javax.crypto.SecretKeyFactory;

import javax.crypto.spec.DESKeySpec;

import javax.crypto.spec.IvParameterSpec;

public class DES {

private static final String ENCODING = "utf-8";

private byte[] key,iv;

private void setKeyIv(String key){

try {

this.key = key.getBytes(ENCODING);

//偏移量,可以与密钥相同

this.iv = new String("bing1987").getBytes(ENCODING);

}

catch (Exception e) {

e.printStackTrace();

}

}

//初始构造方法,设置默认密钥

public DES() {

setKeyIv("5a8f9e3l");

}

public DES(String key) {

setKeyIv(key);

}

public void main(String content) throws Exception {

System.out.println("加前:" + content);

String encrypt = encrypt(content);

System.out.println("加后:" + encrypt);

String decrypt = decrypt(encrypt);

System.out.println("解后:" + decrypt);

}

//加mi方法:instr 待加字串 return 加后的密文

public String encrypt(String instr) throws Exception{

byte[] bytes = desPublic(Cipher.ENCRYPT_MODE, instr.getBytes(ENCODING));

return Tools.encryptBASE64(bytes);

}

//解mi方法:encryptStr 待解字串  return 解后的字串

public String decrypt(String encryptStr) throws Exception {

byte[] bytes = desPublic(Cipher.DECRYPT_MODE, Tools.decryptBASE64(encryptStr));

return new String(bytes);

}

//mode    加或解表示值

//context 待加或解的字节数组

//return 加或解后的字节数组

private byte[] desPublic(int mode, byte[] context) throws Exception 

Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");

DESKeySpec desKeySpec = new DESKeySpec(this.key);

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

SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

IvParameterSpec iv = new IvParameterSpec(this.iv);

cipher.init(mode, secretKey, iv);

return cipher.doFinal(context);

}

}

上面用到的tools工具

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

public class Tools {

public static byte[] decryptBASE64(String key) throws Exception {

return (new BASE64Decoder()).decodeBuffer(key);

}

public static String encryptBASE64(byte[] key) throws Exception {

return (new BASE64Encoder()).encodeBuffer(key);

}

}

你也可以把decryptBASE64和encryptBASE64方法合并到DES类里

java里老是说key,这是什么东东?

容器中的key吗就是,key-value这两个东东在容器中,key就是你对象的一个命名,value就是对象本身。相当与字典一样从key找value。


分享名称:java中的key代码 java keys
地址分享:http://azwzsj.com/article/ddgsgjc.html