Skip to content

Commit 197eb39

Browse files
committed
支持加密文件的读取
1 parent 7efe075 commit 197eb39

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

MMKVReader/ViewController.mm

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,41 @@ - (void)alertMessage:(NSString *)message {
3434
[alert runModal];
3535
}
3636

37+
/**
38+
* 弹出输入密码提示框
39+
* @param prompt 提示框标题
40+
* @return
41+
*/
42+
- (NSString *)inputBox:(NSString *)prompt {
43+
NSAlert *alert = [NSAlert alertWithMessageText:prompt
44+
defaultButton:@"OK"
45+
alternateButton:@"Cancel"
46+
otherButton:nil
47+
informativeTextWithFormat:@""];
48+
NSTextField *input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)];
49+
[alert setAccessoryView:input];
50+
NSInteger button = [alert runModal];
51+
if (button == NSAlertDefaultReturn) {
52+
[input validateEditing];
53+
return [input stringValue];
54+
} else if (button == NSAlertAlternateReturn) {
55+
return nil;
56+
} else {
57+
return nil;
58+
}
59+
}
60+
3761
/**
3862
* 加载 mmkv 文件并刷新列表
3963
* @param name 文件名称
4064
*/
4165
- (void)loadFile:(std::string)name {
42-
mmkv = MMKV::mmkvWithID(name);
66+
NSString *cryptKey = [self inputBox:@"请输入加密key, 如果没有加密请直接确认"];
67+
std::string key = cryptKey ? [cryptKey UTF8String] : "";
68+
if (mmkv) {
69+
mmkv->close();
70+
}
71+
mmkv = MMKV::mmkvWithID(name, MMKV_SINGLE_PROCESS, &key);
4372
[_dataArray removeAllObjects];
4473
[_showArray removeAllObjects];
4574
for (id key in mmkv->allKeys()) {
@@ -207,7 +236,7 @@ - (void)menuClick:(id)sender {
207236
auto ptr = (uint8_t *) buffer.getPtr();
208237
NSString *result = [[NSString alloc] init];
209238
for (int i = 0; i < buffer.length(); ++i) {
210-
result = [result stringByAppendingString:[NSString stringWithFormat:@"%@",[[NSString alloc] initWithFormat:@"%1lx ",*(ptr + i)]]];
239+
result = [result stringByAppendingString:[NSString stringWithFormat:@"%@", [[NSString alloc] initWithFormat:@"%1lx ", *(ptr + i)]]];
211240
}
212241
_showArray[row] = result;
213242
NSLog(@"string=%@", result);

0 commit comments

Comments
 (0)