如何优化 react-native-keychain 性能?
How to optimize react-native-keychain performance?
我正在构建一个使用 react-native-keychain 来安全保存用户令牌的 react-native 应用程序。我知道钥匙串用于保存 username/password 组合,但我认为保存我的令牌不会有任何害处。我目前正在实施一些检查机制,这些机制将检查是否有可用的有效刷新令牌(这意味着最后一个用户在离开应用程序时没有注销,这通常发生在移动应用程序中)并会采取相应的行动。这似乎表现不佳(太慢),我得出的结论是令牌的获取阻碍了应用程序(Keychain.getGenericPassword()) .
问题是:既然钥匙串似乎是本地存储凭据的最安全方式,是否有优化其性能的方法,或者是否有同样安全但通常更快的替代方案?
“react-native-keychain”版本:“6.2.0”
对于仍在尝试解决此问题的任何人。我遇到了同样的问题,我的延迟大约是 10 秒或更多。经过这两个问题 1, 2. I followed the steps mentioned in this 评论后,我能够将它减少到不到一秒。
使用方法getGenericPassword
和setGenericPassword
时使用{storage: KeyChain.STORAGE_TYPE.AES}
选项
转到此文件:node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\KeychainModuleBuilder.java
并将 DEFAULT_USE_WARM_UP
设置为 false
。
转到此文件:
node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\KeychainModule.java
内部方法 getGenericPassword
并更改以下内容:更改
这些行
final String accessControl = getAccessControlOrDefault(options);
final boolean useBiometry = getUseBiometry(accessControl);
final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry);
至
// final String accessControl = getAccessControlOrDefault(options);
// final boolean useBiometry = getUseBiometry(accessControl);
// final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry);
final CipherStorage current = getSelectedStorage(options);
这个问题似乎是因为 RSA 加密使用了预热机制。请点击以上三个链接以获取更多信息。
我正在构建一个使用 react-native-keychain 来安全保存用户令牌的 react-native 应用程序。我知道钥匙串用于保存 username/password 组合,但我认为保存我的令牌不会有任何害处。我目前正在实施一些检查机制,这些机制将检查是否有可用的有效刷新令牌(这意味着最后一个用户在离开应用程序时没有注销,这通常发生在移动应用程序中)并会采取相应的行动。这似乎表现不佳(太慢),我得出的结论是令牌的获取阻碍了应用程序(Keychain.getGenericPassword()) .
问题是:既然钥匙串似乎是本地存储凭据的最安全方式,是否有优化其性能的方法,或者是否有同样安全但通常更快的替代方案?
“react-native-keychain”版本:“6.2.0”
对于仍在尝试解决此问题的任何人。我遇到了同样的问题,我的延迟大约是 10 秒或更多。经过这两个问题 1, 2. I followed the steps mentioned in this 评论后,我能够将它减少到不到一秒。
使用方法
时使用getGenericPassword
和setGenericPassword
{storage: KeyChain.STORAGE_TYPE.AES}
选项转到此文件:
node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\KeychainModuleBuilder.java
并将DEFAULT_USE_WARM_UP
设置为false
。转到此文件:
node_modules\react-native-keychain\android\src\main\java\com\oblador\keychain\KeychainModule.java
内部方法getGenericPassword
并更改以下内容:更改 这些行final String accessControl = getAccessControlOrDefault(options); final boolean useBiometry = getUseBiometry(accessControl); final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry);
至
// final String accessControl = getAccessControlOrDefault(options); // final boolean useBiometry = getUseBiometry(accessControl); // final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry); final CipherStorage current = getSelectedStorage(options);
这个问题似乎是因为 RSA 加密使用了预热机制。请点击以上三个链接以获取更多信息。