15.8 Using a lookup table
Rather than storing the ciphertext in the working data frame, a lookup table can be used as an alternative.
Using lookup = TRUE
has the following effects:
- returns the data frame / tibble with encrypted columns removed and a
key
column included; - returns the lookup table as an object in the R environment;
- creates a lookup table
.csv
file in the active directory.
gp_encrypt = gp %>%
select(-c(name, address1, address2, address3)) %>%
encrypt(postcode, telephone, lookup = TRUE)
#> Lookup table object created with name 'lookup'
#> Lookup table written to file with name 'lookup.csv'
gp_encrypt
#> A tibble: 1,212 x 7
#> key organisation_code city county opendate
#> <int> <chr> <chr> <chr> <date>
#> 1 1 S10002 DUNDEE ANGUS 1995-05-01
#> 2 2 S10017 CRIEFF PERTHSHIRE 1996-04-06
The file creation can be turned off with write_lookup = FALSE
and the name of the lookup can be changed with lookup_name = "anyNameHere"
.
The created lookup file should be itself encrypted using the method below.
Decryption is performed by passing the lookup object or file to the decrypt()
function.
gp_encrypt %>%
decrypt(postcode, telephone, lookup_object = lookup)
# Or
gp_encrypt %>%
decrypt(postcode, telephone, lookup_path = "lookup.csv")
#> A tibble: 1,212 x 8
#> postcode telephone organisation_code city county opendate
#> <chr> <chr> <chr> <chr> <chr> <date>
#> 1 DD2 5NH 01382 580264 S10002 DUNDEE ANGUS 1995-05-01
#> 2 PH7 3SA 01764 652283 S10017 CRIEFF PERTHSHIRE 1996-04-06