C# TripleDES NoPadding 时对待加密内容进行补字节(8个字节为一个Block)

补一个空格(半角):

private static byte[] FormatData(String str)
{
    var yu = str.Length % 8;
    if (yu == 0) return Encoding.GetEncoding(Consts.Charset).GetBytes(str);
    var size = 8 - yu;
    var arr = new byte[str.Length + size];
    var data = Encoding.GetEncoding(Consts.Charset).GetBytes(str);
    var i = 0;
    for (; i < data.Length; i++)
    {
        arr[i] = data[i];
    }
    for (var j = 0; j < size; j++,i++)
    {
        arr[i] = Convert.ToByte(‘ ‘);
    }
    return arr;
}

private static byte[] FormatByte(IList<byte> arr)
{
    var i = 0;
    for (; i < arr.Count; i++)
    {
        if (Convert.ToChar(arr[i]) == ‘ ‘)
        {
            break;
        }
    }
    var result = new byte[i];
    for (var j = 0; j < i; j++)
    {
        result[j] = arr[j];
    }
    return result;
}
时间: 2024-08-09 03:36:37

C# TripleDES NoPadding 时对待加密内容进行补字节(8个字节为一个Block)的相关文章

css实现table中td单元格鼠标悬浮时显示更多内容

table中,td单元格无法显示下全部内容,需要在鼠标hover时显示全部内容. 正常显示样式: 鼠标hover时: html: <td>displayAddress<span class="tdtip">popAddress</span></td> css: td{ position:relative; z-index:2; } td:hover{ z-index:3; background:none; } td .tdtip { di

小例子: 压缩文件时的加密与解密(read + openssl + tar + dd)

1.有的文件需要加密一下 2.有的文件夹需要加密一下 分析: 文件或文件夹加密时需考量的几个问题? 文件夹自动补全时后缀有反斜杠处理规则 单个文件加密时命名的规则 >脚本命令的格式规定为./ss {unEncryptFile | unEncryptDir} >先判断第一个参数是文件还是文件夹 1.文件夹时 > 判断文件夹是否有反斜杠 > 以文件夹的名称做为生成的压缩包名称 2.文件时 > 此处加密时linux中文件后缀去掉 > 当使用压缩和解压缩时后缀就挺有意义的 &g

【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容

GZIP格式 详见:http://blog.csdn.net/jison_r_wang/article/details/52068607 表述的很清楚 关键:GZIP头以0x1F8B开始 用WireShark获取压缩的响应数据 我的WireShark版本号为:v1.12.4 1.选择一个包,右键Follow TCP Stream 2.选择下方的Raw 3.点击Save As 保存为xxx.zip 4.选择Hex Dump,查找0x1F8B的位置 5.用Notepad++打开xxx.zip,删除刚

CRT 连接 ENSP时,Tab 键无法补全与回车键显示双行的解决方法

今天使用 CRT 连接 ensp 时,出现了一个烦人的问题:CRT 连接 ENSP时,Tab 键无法补全与回车键显示双行.这个虽然不影响使用,但是总是感觉不舒服,所以只能把它处理掉.在网上找了相关的资料,也经过测试,确实是OK. 现在方法记录下,留作后用. 网上找到的解决方法:https://blog.csdn.net/wdkirchhoff/article/details/44172455 还遇到一个问题,我在全局设置后,重启CRT,连接后还是一样的无效果,所以只能是一个一个的连接去更改.不知

Android疑惑记录-----在Adapter中配置按钮监听器时,列表项内容获取混乱的问题

xml布局如下: 界面: 代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&

JavaScript基础 text文本框获得焦点时,其中的内容被全选 this.select()

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和解密

在数据库实现加密与解密的文章,Insus.NET较早前也有写过,可以在本博客中可以搜索得到. 今天使用EncryptByPassPhrase和DecryptByPassPhrase来简单实现. 在数据库中创建一张表来演示 CREATE TABLE [dbo].[Users] ( [U_nbr] NVARCHAR(20) NOT NULL PRIMARY KEY, [Pwd] VARBINARY(MAX) ) 当用户使用注册或是添加一笔记录时,你可以使用下面的SQL语句: 当需要验证用户登录信息时

QTP录制脚本时,脚本内容为空的解决办法

在网上百度了一下,大多说的是以下方法: 打开IE,在菜单中选择[工具]/[Internet选项]进入Internet配置界面.选择[程序]/[管理加载项],查看目前加载的ActiveX的情况.当看到存在BHOManager Class并且其状态是"禁用"时,点击"启用"开启这个功能,并保存后退出即可解决问题. 当在管理加载项里找不到BHOManger Class这个加载项时,如果你安装了QTP,那么在C:\WINDOWS\system32下会存在一个叫BHOMana

vs2010在运行网页时修改的内容不会改变

解决方法1: 如果是静态页面, Ctrl+F5 强制刷新页面 解决方法2: 页面中<%@ Page Language="C#" CodeBehind="Default.aspx.cs" %>    把CodeBehind="Default.aspx.cs" 修改成:CodeFile="Default.aspx.cs" 原因: CodeBehind: 指定包含与页关联的类的已编译文件的名称.该属性不能在运行时使用.提