分享

对称加密

 莺唱 2012-07-06
对称加密加密和解密方都必须知道统一的算法和密匙,必须同享密匙。
对称加密步骤:
1.生成共享密匙:关键类  KeyGenerator.java ,SecretKey.java
        javax.crypto.KeyGenerator kg =javax.crypto.KeyGenerator.getInstance("DEsede");   //1.得到DESede算法的密匙生成器
        kg.init(168) ;             //2.制定密匙长度为168位
  SecretKey  key = kg.generateKey();// 3.生成密匙对象
//4.将密匙以字节码的形式保存到文件中
   byte[] data = key.getEncoded();  
  java.io.FileOutPutStream  fous =new java.io.FileOutputStream("DESedeKey.netjava");
fous.write(data);
fous.flush();
fous.close();//

2.对服务中的输出流对象进行加密,SecretKeySpec.java , Cipher.java,  CipherOutputStream.java
FileInputStream fins = new FileInputStream("DESedeKey.netjava");//1.从密匙文件中独舞密匙数据
byte[] keyData= new byte[fins.available()];
fins.read(keyData);
fins.close();
SecretKeySpec  sk=new SecretKeySpec(keyData,"DESede");
Cipher cp=Cipher.getInstance("DESede");
cp.init(Cipher.ENCRYPT_MODE,sk);//2.初始化为加密模式
CipherOutputStream count=new CipherOutputStream(ous,cp);//3.对原始输出流进行加密

3.对客户端的输入流对象进行解密,SecretKeySpec.java , Cipher.java,  CipherInputStream.java
FileInputStream fins = new FileInputStream("DESedeKey.netjava");//1.从密匙文件中独舞密匙数据
byte[] keyData= new byte[fins.available()];
fins.read(keyData);
fins.close();
SecretKeySpec  sk=new SecretKeySpec(keyData,"DESede");
Cipher cp=Cipher.getInstance("DESede");
cp.init(Cipher.DECRYPT_MODE,sk);//2.初始化为加密模式
CipherInputStreamcount=new CipherInputStream(ous,cp);//3.对原始输出流进行加密

说明:以上来至《微博是这样炼成的》

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多