我主要是Java头,我想要一种生成0到74之间的伪随机数的方法.在Java中我会使用这个方法:
Random.nextInt(74)
Run Code Online (Sandbox Code Playgroud)
我对种子或真正随机性的讨论不感兴趣,只是你如何在Objective-C中完成相同的任务.我搜索谷歌,似乎有很多不同的和相互矛盾的信息.
如果它与OS X实现不同,我主要SecRandomCopyBytes对iOS上的实现感兴趣.(我认为它确实如此,因为移动设备比台式计算机拥有越来越多的现成熵源.)
有没有人有关于的信息:
文档没有涵盖这些要点.
我只能找到听到 - 说评论它使用来自无线电,指南针,加速度计和其他来源的信息,但实际上代表Apple的人没有引用.
我想在ios中创建随机AES加密密钥(128位).我搜索过但我找不到一个好的答案.请给我一些建议.提前致谢.
更新:
我用过BBAES lib.我使用下面的代码生成加密密钥,但是当我从NSData转换为NSString时,它显示为NULL
-(NSData*)randomDataWithLength{
NSData* salt = [BBAES randomDataWithLength:BBAESSaltDefaultLength];
NSData *key = [BBAES keyBySaltingPassword:@"password" salt:salt keySize:BBAESKeySize128 numberOfIterations:BBAESPBKDF2DefaultIterationsCount];
NSLog(@"Data ASE Key %@",key);
NSString *aString = [[NSString alloc] initWithData:key encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud) 我有一个基本的笔记应用程序,我想让用户有加密或安全的笔记.我有一个用户界面,但是现在,我似乎无法加密.它要么返回一堆垃圾,要么根本没有.这是我用来/解密的:
- (BOOL) encryptWithAES128Key: (NSString *) key {
// 'key' should be 16 bytes for AES128, will be null-padded otherwise
char * keyPtr[kCCKeySizeAES128+1]; // room for terminator (unused)
bzero(keyPtr, sizeof(keyPtr)); // fill with zeroes (for padding)
// fetch key data
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
// encrypts in-place, since this is a mutable data object
size_t numBytesEncrypted = 0;
CCCryptorStatus result = CCCrypt(kCCEncrypt, kCCAlgorithmAES128 , kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES128,
NULL /* initialization vector (optional) */,
[self mutableBytes], [self length], /* input */ …Run Code Online (Sandbox Code Playgroud) ios ×2
objective-c ×2
security ×2
aes ×1
cocoa ×1
cocoa-touch ×1
encryption ×1
entropy ×1
nsstring ×1
random ×1