• 关于.net和java des加密


    在.net和java环境中对于des加密,有几点要协同的地方:

    1. 密钥和密钥向量Key IV
    2. 加密模式CipherMode
    3. 填充模式PaddingMode
    4. 密文编码方式

    下面一段.net的des加密方式

     1 public string GetConsoleUrl(string vmName)
     2 {
     3     string rs = string.Empty;
     4     using (CloudContext db = new CloudContext())
     5     {
     6         var configs = new ConfigurationRepository(db).GetAll().Where(x => x.Key.Equals("ConsoleUrl") || x.Key.Equals("ConsoleKey"));
     7         if (configs != null)
     8         {
     9             string url = string.Empty;
    10             string key = string.Empty;
    11 
    12             if (configs.FirstOrDefault(x => x.Key.Equals("ConsoleUrl")) != null)
    13                 url = configs.First(x => x.Key.Equals("ConsoleUrl")).Value;
    14             if (configs.FirstOrDefault(x => x.Key.Equals("ConsoleKey")) != null)
    15                 key = configs.First(x => x.Key.Equals("ConsoleKey")).Value;
    16 
    17             if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(key))
    18             {
    19                 byte[] rgbKey = Encoding.UTF8.GetBytes(key);
    20                 byte[] inputByteArray = Encoding.UTF8.GetBytes(vmName + "|" + DateTime.Now.ToString("yyyyMMddhhmmssfff"));
    21                 byte[] rgbIV = rgbKey;
    22 
    23                 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    24                 des.Mode = CipherMode.ECB;
    25                 MemoryStream ms = new MemoryStream();
    26                 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
    27                 cs.Write(inputByteArray, 0, inputByteArray.Length);
    28                 cs.FlushFinalBlock();
    29 
    30                 StringBuilder sb = new StringBuilder();
    31                 foreach (byte b in ms.ToArray())
    32                 {
    33                     sb.AppendFormat("{0:X2}", b);   
    34                 }
    35                 rs = string.Format("http://{0}?token={1}", url, sb.ToString());
    36                 ms.Close();
    37                 ms.Dispose();
    38 
    39                 return rs;
    40             }
    41         }
    42     }
    43     return rs;
    44 }
  • 相关阅读:
    docker部署遇到的问题集合【持续更新】
    docker开发常用命令
    idea使用三步曲
    防缓存穿透设计
    亿级数据库分片分库架构设计亿【转】
    java-web项目换装servlet3.1.0后性能飙升到10000tps
    spring-kafka消费者配置
    分布式disconf+spring5使用遇到重复加载的问题
    jmeter性能压测
    springboot多profile环境maven配置
  • 原文地址:https://www.cnblogs.com/yuefei/p/3613480.html
Copyright © 2020-2023  润新知