编写函数完成字符串c语言的加密和解密与解密(c语言)?

公司最近在做单片机和C#语言的通信。用的是Socket通信。传输的数据是明文,后来 在会上讨论准备用DES加密(对称加密)来做。

双方约定 相应的“密钥”。

以前做的加密一般都是用C#加密和C#解密。一直以为是个简单的问题,现在和用C写的单片机通信的时候却出了问题。

我找了几个在线加密 解密的网站,还下了几个加密解密的工具。结果相同的数据,用相同的密钥却得到不同的结果。

而且现在网上C语言实现的DES资料基本上是不靠谱,好多是错误的,都是你抄我,我抄你,抄来抄去,抄到最后没有一个完整实现DES几种模式加密的。

没办法,赶紧去找DES的原理来看,好研究了一番现在终于解决完成。保证了自己写的代码和几种工具一样的结果。现在将代码奉上,希望能帮上大家的忙。

ECB(Electronic Code book电码本)模式,相对简单,将数据按照每8字节一段进行DES加解密的(一次加解密操作必须是8字节,这是算法决定的),如果最后一段不足8字节, 则按照需要补0x00或者0xFF进行计算.之后按照数据顺序将所有的数据连接在一起。

这个模式说了这么多,我也不明白啥意思,不过 现在网上流传的C语言实现的DES加密算法基本上都是这种模式。

采用这个模式以后 ,设置不设置 加密向量都没有用的。

请注意,我在这里实现的都是 采用这种模式,所以 文中出现的加密向量有关的语句,你都可以把它给无视掉,你删除掉它,也会得到相同的结果。
CBC(Cipher-block chaining密文分组链接)模式,该模式使得各段数据存在一些联系,实现原理比较复杂,我也没有搞懂,不过以前写C#代码的时候,有个加密向量,就像下面代码这样子的Byte数组

我一直不明白它有什么用,现在我终于明白了,C#默认的就是这种模式。

现在奉上C#的实现代码:

这篇文章将为大家详细讲解有关怎么在PHP中对字符串进行加密与解密,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1,非常给力的验证码加密函数,康盛创想!经典代码(带详解):,

  ,,,,//才能,密匙一个会参与加解密,,
 

求大人速度给答案啊!... 求大人速度给答案啊!


· 知道合伙人软件行家

网盘是个好东东,可以对话和传文件


你对这个回答的评价是?

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 c语言的加密和解密 的文章

 

随机推荐