1.最近公司要加密,调研了几种比较常用的加密算法
- ROT13
- asc 码运算加密
- DES 加密
- AES 加密
通过以下几文章介绍一下几种加密算法
1.ROT13
1.由来
ROT13(回转13位,rotate by 13 places,有时中间加了个连字符称作ROT-13)是一种简易的替换式密码。它是一种在英文网络论坛用作隐藏八卦(spoiler)、妙句、谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥。ROT13被描述成“杂志字谜上下颠倒解答的Usenet点对点体”。ROT13 也是过去在古罗马开发的凯撒加密的一种变体。
2.描述
套用 ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。A 换成N、B 换成O、依此类推到 M 换成 Z,然后序列反转:N 换成 A、O 换成 B、最后Z换成 M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其它字元都不变。因为只有在英文字母表里头只有26个,并且26=2*13,ROT13函数是它自己的逆反;
对任何字元x:ROT13(ROT13(x))=ROT26(x)=x。
换句话说,两个连续的ROT13应用函式会回复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocalcipher))。
3实现:
定义:
+ (NSString *)rot13:(NSString *)str;
实现文章来源:https://www.toymoban.com/news/detail-731425.html
+ (NSString *)rot13:(NSString *)str{
NSMutableArray *arr = [NSMutableArray array];
for (int i =0; i<str.length; i++) {
int subStr = [str characterAtIndex:i];
if (subStr >= 65 && subStr <= 77) {
[arr addObject:@(subStr - 64 + 90 - 13)];
}else if (subStr > 77 && subStr <= 90){
[arr addObject:@(subStr - 13)];
}else{
[arr addObject:@(subStr)];
}
}
NSMutableString *newStr = [NSMutableString stringWithString:@""];
for (int j=0; j < arr.count; j++) {
NSString *subNewStr = [NSString stringWithFormat:@"%c", [arr[j] intValue]];
[newStr appendString:subNewStr];
}
return newStr;
}
调用:文章来源地址https://www.toymoban.com/news/detail-731425.html
[self rot13: @"ABCDEFG"]
到了这里,关于调研加密几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!