int SecRandomCopyBytes ( SecRandomRef rnd, size_t count, uint8_t *bytes );
Ví dụ:
uint8_t data[100];
int err = 0;
// Don't ask for too many bytes in one go, that can lock up your system
err = SecRandomCopyBytes(kSecRandomDefault, 100, data);
if(err != noErr)
@throw [NSException exceptionWithName:@"..." reason:@"..." userInfo:nil];
NSData* randomData = [[NSData alloc] initWithBytes:data length:100];
Theo ghi nhận của Peter trong các ý kiến, bạn cũng có thể làm điều này:
NSMutableData* data = [NSMutableData dataWithLength:100];
err = SecRandomCopyBytes(kSecRandomDefault, 100, [data mutableBytes]);
Và như ghi nhận bởi Rob trong các ý kiến, bạn cần phải liên kết Security.framework cho Sec RandomCopyBytes khả dụng. Bạn cũng cần bao gồm SecRandom.h
.
Làm cách nào để bạn biết byte nào là phần bổ sung ngẫu nhiên và là một phần của bản rõ gốc khi bạn giải mã? Đã có một số lược đồ đệm mật mã khác nhau để sử dụng trong các trường hợp khác nhau, hầu hết trong số đó là dễ dàng hơn để cắt bỏ sau đó hơn một loạt các byte ngẫu nhiên. – rossum