From 8f29a457d7afd7e6d90075cdba8b56862774c7ef Mon Sep 17 00:00:00 2001 From: LA Roberto Date: Tue, 27 Mar 2018 21:44:01 +0800 Subject: [PATCH] Use better generator for entry id --- src/screens/Entry.js | 4 ++-- src/utils/crypto.js | 5 +++++ src/utils/idGenerator.js | 6 ------ 3 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 src/utils/idGenerator.js diff --git a/src/screens/Entry.js b/src/screens/Entry.js index bb4f71b..f129daf 100644 --- a/src/screens/Entry.js +++ b/src/screens/Entry.js @@ -11,7 +11,7 @@ import { modifyEntry, getEntryDetails, } from '../redux/modules/listings'; -import generateId from '../utils/idGenerator'; +import { generateRandomBytes } from '../utils/crypto'; const modes = { add: 'ENTRY_ADD', @@ -90,7 +90,7 @@ const mapStateToDispatch = ( ) => ({ handleSubmit(id, name, code) { if (action === ADD_ENTRY) { - dispatch(addEntry(generateId(), name, code)); + dispatch(addEntry(generateRandomBytes(), name, code)); } else { dispatch(modifyEntry(id, code)); } diff --git a/src/utils/crypto.js b/src/utils/crypto.js index 3996794..8bb3eee 100644 --- a/src/utils/crypto.js +++ b/src/utils/crypto.js @@ -7,3 +7,8 @@ export const hashString = string => { .digest() .toHex(); }; + +export const generateRandomBytes = (length = 6) => { + const bytes = forge.random.getBytesSync(8); + return forge.util.bytesToHex(bytes).substring(0, length); +}; diff --git a/src/utils/idGenerator.js b/src/utils/idGenerator.js deleted file mode 100644 index 28f9ef8..0000000 --- a/src/utils/idGenerator.js +++ /dev/null @@ -1,6 +0,0 @@ -const generateId = (length = 6) => - Math.random() - .toString(36) - .substring(length - 1); - -export default generateId;