{"id":12829,"date":"2019-04-25T17:36:56","date_gmt":"2019-04-25T21:36:56","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=12829"},"modified":"2025-02-11T14:10:56","modified_gmt":"2025-02-11T19:10:56","slug":"data-masking-in-fieldshield","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/","title":{"rendered":"Using Static Data Masking &#038; Dynamic Data Unmasking"},"content":{"rendered":"<p class=\"c1\">Usually\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/solutions\/data-masking\/static-data-masking\">static data masking<\/a><\/span>\u00a0is performed on production data at rest so it is stored safely, or when replicated to non-production environments for testing or development purposes.\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/solutions\/data-masking\/dynamic-data-masking\">Dynamic data masking<\/a><\/span><span class=\"c0\">\u00a0(DDM) is performed on data in production tables during queries, so that those not authorized to see original column values will see redacted views of the values in their application instead.<\/span><\/p>\n<p class=\"c1\">It\u2019s well known that\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/products\/fieldshield\">IRI FieldShield<\/a><\/span>\u00a0is a\u00a0static data masking\u00a0product. But it can also be used to mask and unmask data in databases and flat files in a more\u00a0dynamic way. We have seen use cases requiring either,\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/customers\/case-studies\/fieldshield-bfsi-use-case-static-dynamic-data-masking\">or both<\/a><\/span>, when the data at risk are at rest (static) or in motion (dynamic) and need to be protected.<\/p>\n<p class=\"c1\"><span class=\"c3\">DDM via \u2018redaction in flight\u2019 is available from IRI through: API-callable masking libraries you can make on an authenticated, custom basis from C, C++, Java or .NET applications (see <a href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/fieldshield-sdk-2\/\">SDK here<\/a>); SQL (procedure) calls; and soon, a special JDBC driver managed via proxy server. This article addresses the first method for dynamic <em>un<\/em>masking in conjunction with static data masking.\u00a0<\/span><\/p>\n<p class=\"c1\">To demonstrate both static and dynamic data masking, we used\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/products\/workbench\">IRI Workbench<\/a><\/span>, the free graphical front-end for FieldShield and other IRI software,\u00a0<span class=\"c0\">built on Eclipse\u2122. In data security, compliance, and test data scenarios, Workbench users connect to their sources, perform discovery and classification, and then build and run static data masking functions.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-12841 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui-1024x682.png\" alt=\"\" width=\"799\" height=\"532\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui-1024x682.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui-300x200.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui-768x511.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png 1446w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><\/a><\/p>\n<p class=\"c1\">More specifically, they define their\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/data-classification-in-iri-workbench\/\">data classes<\/a><\/span>\u00a0and search criteria, then apply\u00a0consistent\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/products\/workbench\/fieldshield-gui\">masking rules<\/a><\/span>\u00a0to protect it. This helps them g<span class=\"c0\">overn their data better, and preserve the referential integrity of their sources. And it helps them conform with data privacy laws and business needs.<\/span><\/p>\n<p class=\"c1\">Workbench also supports re-ID risk scoring, database subsetting, test data generation and population, and many other data management\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/products\/voracity\/technical-details\">capabilities<\/a><\/span>\u00a0enabled in the\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/products\/voracity\">IRI Voracity<\/a><\/span>\u00a0platform, which includes FieldShield.<\/p>\n<p class=\"c1\">Being in Eclipse also means Workbench supports Java application development, and thus your programs that can dynamically mask or unmask data using library functions compatible with the static functions. Again, the API is documented\u00a0in the\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/fieldshield-sdk-2\/\">FieldShield SDK<\/a><\/span><span class=\"c0\">.<\/span><\/p>\n<p class=\"c1\"><span class=\"c0\">This article provides a quick example of using FieldShield in Workbench for static data masking of a database table, and then unmasking that data dynamically in a Java program. Everything is configured in IRI Workbench.<\/span><\/p>\n<p class=\"c1\"><em><strong><span class=\"c5\">Setting Up<\/span><\/strong><\/em><\/p>\n<p class=\"c1\">First, we built and populated a sample table in MySQL using the\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/creating-executing-sql-statements-in-iri-workbench\/\">SQL scrapbook<\/a><\/span><span class=\"c0\">\u00a0of the Data Tools Platform (DTP) plug-in. We defined columns for: username, email, time, and comments:<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12843 \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql-e1556298903558-1024x481.png\" alt=\"\" width=\"801\" height=\"376\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql-e1556298903558-1024x481.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql-e1556298903558-300x141.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql-e1556298903558-768x361.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/scratch-sql-e1556298903558.png 1056w\" sizes=\"(max-width: 801px) 100vw, 801px\" \/><\/a><\/p>\n<p class=\"c1\"><em><strong><span class=\"c5\">Static Data Masking<\/span><\/strong><\/em><\/p>\n<p class=\"c1\">We used the \u2018New Data Masking Job \u2026\u2019 wizard from the top toolbar menu in Workbench to quickly acquire that table and its metadata, and build a job to statically mask the email column using one of the AES 256 encryption functions in FieldShield, enc_aes256. In the FieldShield script that the wizard created, we can see the function to be applied to the column once, and then on new rows in the table when the same job is\u00a0triggered\u00a0or\u00a0<span class=\"c9\"><a class=\"c4\" href=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/scheduling-jobs-in-iri-workbench\/\">scheduled<\/a><\/span><span class=\"c0\">\u00a0to run again.<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12842 \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job-e1556299090908-1024x306.png\" alt=\"\" width=\"850\" height=\"254\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job-e1556299090908-1024x306.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job-e1556299090908-300x90.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job-e1556299090908-768x230.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/new-masking-job-e1556299090908.png 1392w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/a><\/p>\n<p>Once run, the table in the MySQL database will have the email column encrypted.<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12837 \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted-e1556299955254-1024x242.png\" alt=\"\" width=\"855\" height=\"202\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted-e1556299955254-1024x242.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted-e1556299955254-300x71.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted-e1556299955254-768x182.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/column-encrypted-e1556299955254.png 1252w\" sizes=\"(max-width: 855px) 100vw, 855px\" \/><\/a><\/p>\n<p class=\"c1\"><em><strong><span class=\"c5\">Dynamic Data (Un) Masking<\/span><\/strong><\/em><\/p>\n<p class=\"c1\"><span class=\"c0\">To demonstrate dynamic data unmasking, or decryption in this case, we called the corresponding decryption function, dec_aes256, in the FieldShield API library for Java:<\/span><\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/Dataaccess-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12849 aligncenter\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/Dataaccess-1.png\" alt=\"\" width=\"697\" height=\"714\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/Dataaccess-1.png 840w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/Dataaccess-1-293x300.png 293w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/Dataaccess-1-768x787.png 768w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/a><\/p>\n<p>Similar calls are possible from .NET languages. This basic app shows how to connect to the MySQL table, validate the user, and display both the statically encrypted ciphertext value from the table, and the dynamically decrypted original plaintext email value in the console:<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2019\/04\/sql-view-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-12850 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2019\/04\/sql-view-1.png\" alt=\"\" width=\"807\" height=\"479\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/sql-view-1.png 742w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/sql-view-1-300x178.png 300w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><\/p>\n<p>Of course, you also could have performed the decryption back in Workbench in static fashion with a similar, standalone FieldShield task like this:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12840 \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script-e1556300790280-1024x263.png\" alt=\"\" width=\"845\" height=\"217\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script-e1556300790280-1024x263.png 1024w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script-e1556300790280-300x77.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script-e1556300790280-768x197.png 768w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-script-e1556300790280.png 1588w\" sizes=\"(max-width: 845px) 100vw, 845px\" \/><\/a><\/p>\n<p class=\"c1\">The script above decrypts the ciphertext email values back to their original plaintext in each row of the database. The output can be the source table itself (to restore it), other targets (say, for testing), or both.<span id='easy-footnote-1-12829' class='easy-footnote-margin-adjust'><\/span><span class='easy-footnote'><a href='https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#easy-footnote-bottom-1-12829' title='&lt;\/p&gt;\n&lt;p class=&quot;c1&quot;&gt;&lt;span class=&quot;c2&quot;&gt;More un\/masking\u00a0&lt;\/span&gt;&lt;span class=&quot;c1 c2&quot;&gt;&lt;a class=&quot;c3&quot; href=&quot;https:\/\/www.iri.com\/blog\/data-protection\/data-masking-function-use\/&quot;&gt;functions&lt;\/a&gt;&lt;\/span&gt;&lt;span class=&quot;c2&quot;&gt;, plus many other\u00a0&lt;\/span&gt;&lt;span class=&quot;c1 c2&quot;&gt;&lt;a class=&quot;c3&quot; href=&quot;https:\/\/www.iri.com\/solutions\/data-transformation&quot;&gt;transformation&lt;\/a&gt;&lt;\/span&gt;&lt;span class=&quot;c2&quot;&gt;\u00a0and\u00a0&lt;\/span&gt;&lt;span class=&quot;c1 c2&quot;&gt;&lt;a class=&quot;c3&quot; href=&quot;https:\/\/www.iri.com\/solutions\/business-intelligence\/embedded-bi\/formatting-options&quot;&gt;reformatting&lt;\/a&gt;&lt;\/span&gt;&lt;span class=&quot;c8 c2&quot;&gt;\u00a0functions (via an IRI CoSort or Voracity license), can run against that data in the same job script and I\/O pass.'><sup>1<\/sup><\/a><\/span> Multiple tasks scripts addressing the masking or unmasking of multiple tables can be created automatically via FieldShield wizards in Workbench (and preserve referential integrity) with or without defined <a href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-data-classification\/\">data classes<\/a>.<\/span><\/p>\n<p class=\"c1\"><span class=\"c0\">In this case, you can check that the values have been decrypted to their original form by connecting to your MySQL database and selecting the fields that you want to see, or by simply displaying the table in Workbench. The decrypted view is the original table:<\/span><\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2019\/04\/decrypt-results.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-12848 \" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-results-e1556301337349.png\" alt=\"\" width=\"849\" height=\"184\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-results-e1556301337349.png 936w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-results-e1556301337349-300x65.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/decrypt-results-e1556301337349-768x167.png 768w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/a><\/p>\n<p class=\"c1\"><span class=\"c0\">The bottom line is that you can mask and unmask data statically or dynamically using IRI FieldShield. Use standalone mode for static data masking, and API mode for dynamic data masking. The masking functions are compatible, and every solution is enabled in the same pane of glass.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Usually\u00a0static data masking\u00a0is performed on production data at rest so it is stored safely, or when replicated to non-production environments for testing or development purposes.\u00a0Dynamic data masking\u00a0(DDM) is performed on data in production tables during queries, so that those not authorized to see original column values will see redacted views of the values in their<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\" title=\"Using Static Data Masking &#038; Dynamic Data Unmasking\">Read More<\/a><\/div>\n","protected":false},"author":119,"featured_media":12841,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8,91,29,3],"tags":[10,14,99,651,203,9,520,850,652,88],"class_list":["post-12829","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-iri-workbench","category-test-data","category-vldb-operations","tag-data-encryption","tag-data-masking","tag-decryption","tag-dynamic-data-masking","tag-encryption","tag-fieldshield","tag-iri-fieldshield","tag-iri-workbench","tag-static-data-masking","tag-test-data-2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using Static Data Masking &amp; Dynamic Data Unmasking - IRI<\/title>\n<meta name=\"description\" content=\"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Static Data Masking &amp; Dynamic Data Unmasking\" \/>\n<meta property=\"og:description\" content=\"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-25T21:36:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-11T19:10:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1446\" \/>\n\t<meta property=\"og:image:height\" content=\"963\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Devon Kozenieski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Devon Kozenieski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\"},\"author\":{\"name\":\"Devon Kozenieski\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/de972c035aaeecfc40a3ae2ea5ff7ba1\"},\"headline\":\"Using Static Data Masking &#038; Dynamic Data Unmasking\",\"datePublished\":\"2019-04-25T21:36:56+00:00\",\"dateModified\":\"2025-02-11T19:10:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\"},\"wordCount\":807,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\",\"keywords\":[\"data encryption\",\"data masking\",\"decryption\",\"dynamic data masking\",\"encryption\",\"FieldShield\",\"IRI FieldShield\",\"IRI Workbench\",\"static data masking\",\"test data\"],\"articleSection\":[\"Data Masking\/Protection\",\"IRI Workbench\",\"Test Data\",\"VLDB\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\",\"name\":\"Using Static Data Masking & Dynamic Data Unmasking - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\",\"datePublished\":\"2019-04-25T21:36:56+00:00\",\"dateModified\":\"2025-02-11T19:10:56+00:00\",\"description\":\"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png\",\"width\":1446,\"height\":963},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Static Data Masking &#038; Dynamic Data Unmasking\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/de972c035aaeecfc40a3ae2ea5ff7ba1\",\"name\":\"Devon Kozenieski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e4c421588c1a85dd9a76146fe15528f7?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e4c421588c1a85dd9a76146fe15528f7?s=96&d=blank&r=g\",\"caption\":\"Devon Kozenieski\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/devonk\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Static Data Masking & Dynamic Data Unmasking - IRI","description":"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/","og_locale":"en_US","og_type":"article","og_title":"Using Static Data Masking & Dynamic Data Unmasking","og_description":"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/","og_site_name":"IRI","article_published_time":"2019-04-25T21:36:56+00:00","article_modified_time":"2025-02-11T19:10:56+00:00","og_image":[{"width":1446,"height":963,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","type":"image\/png"}],"author":"Devon Kozenieski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Devon Kozenieski","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/"},"author":{"name":"Devon Kozenieski","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/de972c035aaeecfc40a3ae2ea5ff7ba1"},"headline":"Using Static Data Masking &#038; Dynamic Data Unmasking","datePublished":"2019-04-25T21:36:56+00:00","dateModified":"2025-02-11T19:10:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/"},"wordCount":807,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","keywords":["data encryption","data masking","decryption","dynamic data masking","encryption","FieldShield","IRI FieldShield","IRI Workbench","static data masking","test data"],"articleSection":["Data Masking\/Protection","IRI Workbench","Test Data","VLDB"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/","name":"Using Static Data Masking & Dynamic Data Unmasking - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","datePublished":"2019-04-25T21:36:56+00:00","dateModified":"2025-02-11T19:10:56+00:00","description":"Learn how to mask PII data in production with static data masking, and how those authorized can unmask that data dynamically from a program.","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","width":1446,"height":963},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/data-masking-in-fieldshield\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Static Data Masking &#038; Dynamic Data Unmasking"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/de972c035aaeecfc40a3ae2ea5ff7ba1","name":"Devon Kozenieski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e4c421588c1a85dd9a76146fe15528f7?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e4c421588c1a85dd9a76146fe15528f7?s=96&d=blank&r=g","caption":"Devon Kozenieski"},"url":"https:\/\/www.iri.com\/blog\/author\/devonk\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/04\/fieldshield-gui.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/12829"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/119"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=12829"}],"version-history":[{"count":17,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/12829\/revisions"}],"predecessor-version":[{"id":18254,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/12829\/revisions\/18254"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/12841"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=12829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=12829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=12829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}