ios md5加密原理是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios md5加密原理是啥意思相关的知识,希望对你有一定的参考价值。

MD5加密算法原理MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和C语言源代码在Internet RFCs 1321中有详细的描述( http://www.ietf.org/rfc/rfc1321.txt),这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IEFT提交。. .   参考技术A -(NSString *)md5:(NSString *)str
const char *cStr = [str UTF8String];//转换成utf-8
unsigned char result[16];//开辟一个16字节(128位:md5加密出来就是128位/bit)的空间(一个字节=8字位=8个二进制数)
CC_MD5( cStr, strlen(cStr), result);
/*
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封装好的加密方法
把cStr字符串转换成了32位的16进制数列(这个过程不可逆转) 存储到了result这个空间中
*/
return [NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
/*
x表示十六进制,%02X 意思是不足两位将用0补齐,如果多余两位则不影响
NSLog("%02X", 0x888); //888
NSLog("%02X", 0x4); //04
*/


MD5加密算法多数用于验证,比如说密码匹配用的就是MD5加密后得到的数值。

输出方式用一个for循环来解决更为方便
NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++)
[Mstr appendFormat:@"%02X",result[i]];

return Mstr;

MD5算法 不管是什么语言得到的结果都是一样的。
可能会有人遇到过ios客户端和java服务器端匹配MD5值会有不一样的,我猜测:并不是算 法有问题,可能是某一方求MD5值少了一步,直接这样搞定的
NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++)
[Mstr appendFormat:@"%d",(char)result[i]];

return Mstr;本回答被提问者和网友采纳
参考技术B 简单讲解iOS应用开发中的MD5加密的相关使用:
http://www.jb51.net/article/76646.htm

CSS Flexbox系统中的xs、md、lg是啥意思?

【中文标题】CSS Flexbox系统中的xs、md、lg是啥意思?【英文标题】:What is the meaning of xs, md, lg in CSS Flexbox system?CSS Flexbox系统中的xs、md、lg是什么意思? 【发布时间】:2017-09-12 17:22:07 【问题描述】:

我正在使用React 开发一个应用程序并想设置组件样式,我发现https://roylee0704.github.io/react-flexbox-grid/ 谈到了流体网格系统。示例如下:

<Row>
  <Col xs=12 sm=3 md=2 lg=1 />
  <Col xs=6 sm=6 md=8 lg=10 />
  <Col xs=6 sm=3 md=2 lg=1 />
</Row>

我不知道xssmlg是什么?有人可以解释一下吗?

【问题讨论】:

它衡量每个col 在不同屏幕尺寸上占用多少列空间。 xs -> 超小,sm -> 小,md -> 中,lg -> 大。看到每个size总计最多12(屏幕分成的列数) 谢谢,如果我按列加法,xs 列总和为24 而不是 12,这是否意味着 2 行?其中第 1 列占据整行,第 2 列和第 3 列分别位于第二行,宽度为 50%? 【参考方案1】:

假设我们的屏幕分为12 列。

xs 部分在屏幕超小时占用,类似地,small、medium 和 large 类也是如此,这取决于它们各自在 CSS 中的屏幕尺寸定义。

你提供的例子:

<Row>
  <Col xs=12 sm=3 md=2 lg=1 />
  <Col xs=6 sm=6 md=8 lg=10 />
  <Col xs=6 sm=3 md=2 lg=1 />
</Row>

为了我们的缘故,假设这三列被命名为col-1col-2col-3

在超小屏幕上:

col-1 占满 12 列,其余两列各占 6 列(在新行上)

在小屏幕上

col-1col-3占用3个,而中间的col-2占用6个

同样

中屏

大屏幕

P.S.图片是您提供的链接的屏幕截图(通过调整每个屏幕尺寸的浏览器大小)

【讨论】:

【参考方案2】:

React Flexbox Grid 可用于使您的网站具有响应性。它源自网格系统,后跟Bootstrap。

网格系统将屏幕分为 12 列,您可以提及移动设备、平板电脑和台式机中的组件可以占用多少宽度。 xssmmdlgxl 的断点分别为 576px、768px、992px 和 1200px。

您可以通过调整页面https://roylee0704.github.io/react-flexbox-grid/的浏览器窗口大小来查看差异

与下面的媒体查询相同

// xs --- Extra small devices (portrait phones, less than 576px)
// No media query since this is the default in Bootstrap

// sm --- Small devices (landscape phones, 576px and up)
@media (min-width: 576px)  ... 

// md --- Medium devices (tablets, 768px and up)
@media (min-width: 768px)  ... 

// lg --- Large devices (desktops, 992px and up)
@media (min-width: 992px)  ... 

// xl --- Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px)  ... 

【讨论】:

谢谢,如果我按列加法,xs 列总和为 24 而不是 12,这是否意味着 2 行?其中第 1 列占据整行,第 2 列和第 3 列分别位于第二行,宽度为 50%? 是的。在您问题的代码 sn-p 中,xs 列将在您提到的小型设备中占用 2 行。 我希望我已经澄清了你的疑问 是的,你做到了!非常感谢

以上是关于ios md5加密原理是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

MD5的加密是啥意思

MD5加密是啥?一般用在啥地方?有用嘛?

谁可以告诉我md5加密原理

现在网上的win7安装程序都有MD5值,sha1和CRC是啥意思?

ios 怎么使用md5进行加密

md5 32位 加密原理 Java实现md5加密