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 *)strconst 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>
我不知道xs
、sm
和lg
是什么?有人可以解释一下吗?
【问题讨论】:
它衡量每个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-1
、col-2
和col-3
在超小屏幕上:
col-1
占满 12 列,其余两列各占 6 列(在新行上)
在小屏幕上
col-1
和col-3
占用3个,而中间的col-2
占用6个
同样
中屏
大屏幕
P.S.图片是您提供的链接的屏幕截图(通过调整每个屏幕尺寸的浏览器大小)
【讨论】:
【参考方案2】:React Flexbox Grid 可用于使您的网站具有响应性。它源自网格系统,后跟Bootstrap。
网格系统将屏幕分为 12 列,您可以提及移动设备、平板电脑和台式机中的组件可以占用多少宽度。 xs
、sm
、md
、lg
和 xl
的断点分别为 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加密原理是啥意思的主要内容,如果未能解决你的问题,请参考以下文章