云计算加密

原创 2012年03月28日 14:01:49

如果您使用 AES 加密,那么在加密明文时生成的二进制字符时,会需要使用 base-64 编码,至少在您希望在 Web 请求(例如,使用 SimpleDB 域)中使用它们时需要使用 base-64 编码。因此,我将编码所有加密的字符串,解码任何已加密的字符串。

用于 AES 的 Cryptographical 实现类(如清单 3 所示)不仅要处理 AES 加密,还要处理 base-64 编码和解码:


清单 3. 我的 Cryptographical 接口的一种 AES 实现
				
package com.b50.crypto;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;

public class AESCryptoImpl implements Cryptographical {

 private Key key;
 private Cipher ecipher;
 private Cipher dcipher;

 private AESCryptoImpl(Key key) throws NoSuchAlgorithmException,
   NoSuchPaddingException, InvalidKeyException {
  this.key = key;
  this.ecipher = Cipher.getInstance("AES");
  this.dcipher = Cipher.getInstance("AES");
  this.ecipher.init(Cipher.ENCRYPT_MODE, key);
  this.dcipher.init(Cipher.DECRYPT_MODE, key);
 }

 public static Cryptographical initialize(CryptoKeyable key) throws CryptoException {
  try {
   return new AESCryptoImpl(key.getKey());
  } catch (NoSuchAlgorithmException e) {
   throw new CryptoException(e);
  } catch (NoSuchPaddingException e) {
   throw new CryptoException(e);
  } catch (InvalidKeyException e) {
   throw new CryptoException(e);
  }
 }

 public String encrypt(String plaintext) {
  try {
   return new BASE64Encoder().encode(ecipher.doFinal(plaintext.getBytes("UTF8")));
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
 }

 public String decrypt(String ciphertext) {
  try {
   return new String(dcipher.doFinal(new BASE64Decoder().decodeBuffer(ciphertext)), 
     "UTF8");
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
 }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

大数据与云计算笔记[二]:安全加密

①对称加密基本概念 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 速度快,对称性加密通常在消息发送方需要加密大...

八种有效手段确保云计算服务安全通过加密等方法实现云数据安全

云加密的一些规则

云计算实践指南

  • 3天前 14:32
  • 37.03MB
  • 下载

云计算(十七)- Windows下编译Hadoop2.2源码并引入eclipse

环境: SVN或者小乌龟 ant maven protoc(http://download.csdn.net/detail/can007/5816063) VS2010 第一步:从SVN下载code...

《云计算入门指南》

  • 2016-07-25 11:05
  • 766KB
  • 下载

云计算第二版

  • 2017-01-27 17:59
  • 279KB
  • 下载

云计算时代到来网络自动化势在必行

不幸的是,IT部门的基础设施管理任务竟成为自动化进程最后的阻碍之一。 这就好像是会计师太忙而没时间管理自己的账本;建筑师成功完成多个建筑项目,而自己的房子却久久未完成。 现在是时候收拾局面了,不能...

云计算与大数据

  • 2017-01-27 18:17
  • 1.75MB
  • 下载

ArcGIS与云计算技术

  • 2017-08-27 10:56
  • 1.61MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)