栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中的.NET TripleDESCryptoServiceProvider等效项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的.NET TripleDESCryptoServiceProvider等效项

代码如下,但首先要注意一些事项。

  1. 必须为每个消息选择一个不同的初始化向量。硬编码初始化向量没有任何意义。IV应该与密文一起发送给消息接收者(这不是秘密)。
  2. 我将自己的实用程序类用于base-64编码。您可以使用
    sun.misc.base64Enprer
    sun.misc.base64Deprer
    而是使用BouncyCastle之类的第三方库,或者编写自己的库。
  3. 您正在使用2键三重DES,其中第一键和第三键相同。我进行了修改
    sharedkey
    以反映这一点,因为Java DESede密码始终需要192位密钥。由密钥生成器来处理密钥选项。
  4. CBC IV只有64位。我只使用的前64位
    sharedvector

此类应与C#版本互操作。

import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;public class Encryption{  private static byte[] sharedkey = {    0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11,     0x12, 0x11, 0x0D, 0x0B, 0x07, 0x02, 0x04, 0x08,     0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11  };  private static byte[] sharedvector = {    0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11  };  public static void main(String... argv)    throws Exception  {    String plaintext = "userNameHere:passwordHere";    String ciphertext = encrypt(plaintext);    System.out.println(ciphertext);    System.out.println(decrypt(ciphertext));  }  public static String encrypt(String plaintext)    throws Exception  {    Cipher c = Cipher.getInstance("DESede/CBC/PKCS5Padding");    c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sharedkey, "DESede"), new IvParameterSpec(sharedvector));    byte[] encrypted = c.doFinal(plaintext.getBytes("UTF-8"));    return base64.enpre(encrypted);  }  public static String decrypt(String ciphertext)    throws Exception  {    Cipher c = Cipher.getInstance("DESede/CBC/PKCS5Padding");    c.init(Cipher.DECRYPT_MODE, new SecretKeySpec(sharedkey, "DESede"), new IvParameterSpec(sharedvector));    byte[] decrypted = c.doFinal(base64.depre(ciphertext));    return new String(decrypted, "UTF-8");  }}

输出:

zQPZgQHpjxR + 41Bc6 + 2Bvqo7 + pQAxBBVN + 0V1tRXcOc =

userNameHere:passwordHere



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438525.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号