public static byte[] encrypt() throws Exception {
String seed = "SuperSecretPassword";
String plaintext = "This is insecure data!";
//API for generating symmetric cryptographic keys
KeyGenerator keygen = KeyGenerator.getInstance("AES");
//Returns a new instance of SecureRandom that utilizes the
//SHA1 algorithm.
SecureRandom secrand = SecureRandom.getInstance("SHA1PRNG");
//Reseeds this SecureRandom instance with the specified seed.
secrand.setSeed(seed.getBytes());
//Initializes this KeyGenerator instance for the specified
//key size (in bits) using the specified randomness source.
keygen.init(128, secrand);
//Generates a secret key.
SecretKey seckey = keygen.generateKey();
//Returns the encoded form of the key.
byte[] rawKey = seckey.getEncoded();
//Create a new SecretKeySpec for the key data and AES algorithm.
SecretKeySpec skeySpec = new SecretKeySpec(rawKey, "AES");
//Creates a new Cipher for the specified transformation.
//The installed providers are searched in order for an
//implementation of the specified transformation.
//The first found provider providing the transformation
//is used to create the cipher.
Cipher cipher = Cipher.getInstance("AES");
//Initializes this cipher instance with the specified key.
//The cipher is initialized for the specified operational
//mode (one of: encryption, decryption, key wrapping or key unwrapping)
//depending on opmode.
//If this cipher instance needs any algorithm parameters
//or random values that the specified key cannot provide,
//the underlying implementation of this cipher is supposed
//to generate the required parameters (using its provider or random values).
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
//Finishes a multi-part transformation (encryption or decryption).
//Processes the bytes in input buffer, and any bytes that
//have been buffered in previous update calls.
byte[] encrypted = cipher.doFinal(plaintext.getBytes());
return encrypted;
}
解密只需要该这一句
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
分享到:
相关推荐
"企名片encrypt-data数据解密算法"是一个专注于处理特定加密数据的工具,它涉及到JavaScript和Python两种编程语言,用于解密由接口返回的Ajax生成的`encrypt_data`。让我们深入探讨这个算法的工作原理、解密过程以及...
"android-sqlite-encrypt"正是为了解决这一问题而设计的SDK,它为Android开发者提供了一个强大的SQLite数据库加密解决方案。 "android-sqlite-encrypt"库的核心功能在于对SQLite数据库进行透明的加密,这意味着...
企名科技,起名片,encrypt-data,javascript文件
2. **DES(Data Encryption Standard)**:数据加密标准,是一个古老的块加密算法,块大小为64位,密钥长度固定为56位。由于其密钥较短,现在已不建议单独使用,但常作为3DES的一部分。 3. **3DES(Triple DES)**...
通过"VB.NET - Security - Encrypt and Decrypt Data"这个教程,开发者可以学习到如何在VB.NET项目中集成这些概念,创建自己的加密和解密功能。"www.pudn.com.txt"可能是教程的源代码示例,而"VB.NET - Security - ...
本文将深入探讨标题"Java和Android Encrypt Eclipse Project and Source Code"所涉及的核心知识点,包括对称加密算法(DES,3DES,AES128和AES256)以及非对称加密算法RSA,并介绍如何在Java和Android平台上实现它们...
DES encrypt/decrypt in PHP
本话题将围绕在Android中使用DES加密和解密时遇到的一个常见问题展开:`javax.crypto.IllegalBlockSizeException: last block incomplete in decryption`。 这个异常通常发生在解密过程中,当输入的数据块大小与DES...
stored data, enabling the requesting party to decrypt the resulting ciphertext and to validate the signature. The proposed scheme is based on elliptic curve operations and does not use ...
AES是由美国国家标准与技术研究所(NIST)在2001年确立的加密标准,取代了DES(Data Encryption Standard)。AES的核心是基于替换和置换的迭代过程,它将明文分块处理,并通过多个轮的混淆和扩散操作转换为密文。每...
Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了Let's...
标题 "华为应用签名(Unable to export or encrypt the private key)" 涉及的是华为应用市场上应用程序签名过程中遇到的问题,通常在使用PEPK工具时,可能会出现“无法导出或加密私钥”的错误。PEPK(Platform ...
使用Let’s Encrypt一个很重要的理由是免费,避免ISP劫持;还有申请速度快、无需注册账户等优点。在对比了众多免费CA后,Let’s Encrypt是比较方便和理想的,它提供了基础DV SSL证书,只提供了数据加密;不验证身份...
Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! 3、Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了...
public void encrypt(InputStream in) throws InvalidKeyException, ShortBufferException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, IOException { ...
Encrypt PDF v2.3破解版
本示例展示了如何使用`openssl_encrypt`进行AES-128-ECB加密,这是一种常见的对称加密算法,用于保护敏感信息。下面将详细解析这个过程。 **AES-128-ECB加密算法** AES(Advanced Encryption Standard)是一种块...
spring-data-mongodb-encrypt 允许将任何字段都标记为@Encrypted以进行逐字段加密。 产品特点 透明地集成到spring-data-mongodb 支持嵌套的集合,地图和bean 高性能(无反射,优化了加密) 密钥版本控制(以帮助...
《EncryptJS加密库在Cocos Creator中的应用与实践》 EncryptJS是一个强大的JavaScript加密库,它为开发者提供了在Web环境中进行数据加密的能力。在Cocos Creator这个2D和3D游戏开发框架中,数据安全尤为重要,尤其...
加密JavaScript库EncryptJS是用于在Web环境中实现加密操作的一个强大工具。这个"encryptjs_creator"版本是原始EncryptJS库的修改版,特别针对"creator"应用进行了优化和定制。这可能意味着它包含了针对特定创建者...