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
链接URL:https://www.cdcxhl.com/article22/ddgsgjc.html

成都网站建设公司_创新互联,为您提供微信公众号服务器托管云服务器品牌网站建设全网营销推广网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设