如何使用.Net类库中AesCryptoServiceProvider进行AES加密?

Blue737445366 2015-12-20 11:03:26
AesCryptoServiceProvider位于System.Security.Cryptography下
官方帮助页面如下
https://msdn.microsoft.com/zh-cn/library/system.security.cryptography.aescryptoserviceprovider(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

我的问题是:
1.密钥偏移量是不是就是IV这个属性?
2.对于一个输入的密码文本,怎么转化成特定长度的密钥Key()数组?——这个类要求的是Byte型的,而且长度也是由要求的
3.密钥偏移量,也有如上的问题
4.加密完成后,怎么转化成Base64编码的和十六进制编码的?

对于第四个问题,我的想法是:【这里我是以以上链接里的示例代码为为基础说的,其中VB和C#的变量名称都是一样的】
Base64,:将msEncrypt变量直接用System.Security.Cryptography.ToBase64Transform转化
十六进制:encrypted = msEncrypt.ToArray()之后,每个Byte转16进制,然后拼在一起。
不知道这么做行不行,求大神解答。
本人比较新,如有不对的地方,见谅
...全文
844 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blue737445366 2015-12-21
  • 打赏
  • 举报
回复
回复#1: 我参考一下这个页面http://www.seacha.com/tools/aes.html 里面有一个密钥偏移量的设置,而且在一些网页上也提到了这个设置的不一样的话,加解密的结果也不一样 对于2.3问题的话,AES一般分为128位、192位、256位。 对于你说的System.Text.Encoding.ASCII.GetBytes,其数组长度是由输入的文本决定的,可是例如256位AES中,Byte的长度是确定的,是32个。 那么如何将不同的文本内容都转换为固定的长度呢?
xdashewan 2015-12-21
  • 打赏
  • 举报
回复
1.不明白你说的密钥偏移量是什么 2.System.Text.Encoding.ASCII.GetBytes("xxx");用你适合的编码转成byte 3.同上 4.Base64是没问题,十六进制只是一种表现形式,如果不用来展示,真没必要转
xdashewan 2015-12-21
  • 打赏
  • 举报
回复
引用 2 楼 Blue737445366 的回复:
那么如何将不同的文本内容都转换为固定的长度呢?
你文本取出来多长就是多长,如果不能匹配AES的密钥长度,那么只能说你的文本里的密钥本身存在问题 那个网站没有对密钥偏移量的任何解释说明,但他没有提供向量IV,那么暂且可以认为就是向量IV

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧