【问题标题】:How can I generate this kind of string pattern as key for encryption [closed]如何生成这种字符串模式作为加密密钥[关闭]
【发布时间】:2013-04-30 01:22:36
【问题描述】:

嗨,我正在尝试生成这种NSString 模式我真正的string 是“abcdefgh”我想通过使用来获取相应的字节

NSData *data=[mystring dataUsingEncoding:NSUTF8StringEncoding]
NSLog(@"%d",[data bytes]);  

将这些值复制到byte array 并将数组总大小限制为24bit

然后我想创建以下模式

"abcdefgh efghabcd hgfedcba"

如何生成这种密钥?

请帮帮我

【问题讨论】:

标签: ios nsstring nsarray


【解决方案1】:

我认为这会奏效。 reversedString 的逻辑取自this answer

#import "NSString+CustomCrypto.h"

@implementation NSString (CustomCrypto)

- (NSString *)reversedString{

    NSMutableString *reversedString = [NSMutableString stringWithCapacity:[self length]];

    [self enumerateSubstringsInRange:NSMakeRange(0,[self length])
                                 options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences)
                              usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
                                  [reversedString appendString:substring];
                              }];

    return [NSString stringWithString:reversedString];
}

- (NSString *)splicedString{

    NSInteger index = [self length]/2;

    NSString *subString = [self substringFromIndex:index];
    NSString *secondString = [self substringToIndex:index];

    return [subString stringByAppendingString:secondString];
}

- (NSString *)customCryptoString{

    NSString *splicedString = [self splicedString];
    NSString *reversedString = [self reversedString];

    return [NSString stringWithFormat:@"%@ %@ %@",self, splicedString, reversedString];
}

调用string的category方法

NSLog(@"%@",[@"abcdefgh" customCryptoString]);

输出:abcdefgh efghabcd hgfedcba

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多