{"id":316,"date":"2018-03-03T22:41:47","date_gmt":"2018-03-03T21:41:47","guid":{"rendered":"http:\/\/wchmurze.cloud\/?p=316"},"modified":"2019-08-18T14:52:26","modified_gmt":"2019-08-18T12:52:26","slug":"generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3","status":"publish","type":"post","link":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/","title":{"rendered":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3"},"content":{"rendered":"<p>W poprzedniej cz\u0119\u015bci\u00a0 przygotowali\u015bmy szkic\u00a0 procedury sk\u0142adowanej implementuj\u0105cej prosty mechanizm wykrywania danych osobowych.<\/p>\n<p>To czego zabrak\u0142o, to wykorzystanie funkcji tabelarycznych\u00a0 do wykrywania tych danych, kt\u00f3re posiadaj\u0105 sum\u0119 kontroln\u0105 i same wyra\u017cenia regularne mog\u0105 nie wystarczy\u0107.<\/p>\n<p>Zajmijmy si\u0119\u00a0\u00a0 identyfikatorami PESEL, NIP, REGON. Zainteresowanych budow\u0105\u00a0 takich identyfikator\u00f3w odsy\u0142am do powszechnie dost\u0119pnych \u017ar\u00f3de\u0142 (m.in WIkipedia).<\/p>\n<p>Poni\u017cej przedstawiono kod trzech prostych funkcji tabelarycznych napisanych w Transact SQL.<\/p>\n<p>PESEL<\/p>\n<pre lang=\"tsql\">\r\n\r\nCREATE FUNCTION [dbo].[fnCheckPESEL] (@value VARCHAR(100))\r\nRETURNS TABLE\r\nAS\r\nRETURN\r\n\r\n  WITH CheckBase as\r\n  (\r\n  SELECT  \r\n\t\tRTRIM(LTRIM(@value))\r\n\r\n  AS RAWPESEL,\r\n\r\n  LEFT(@value,10) +  \r\n\t\t\tTRY_CONVERT(VARCHAR(1), ((\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,1,1))*9 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,2,1))*7 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,3,1))*3 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,4,1))*1 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,5,1))*9 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,6,1))*7 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,7,1))*3 + \r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,8,1))*1 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,9,1))*9 +\r\n\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,10,1))*7)% 10)) \r\n\t\t\tas PESEL\r\n  )\r\n\r\nselect RAWPESEL, PESEL,\r\n  isValid = case when  RAWPESEL = PESEL \r\n\t\t\tand RAWPESEL like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'  \r\n\t\t\t\tthen \r\n\t\t\t\t\t1 \r\n\t\t\t\telse \r\n\t\t\t\t\t0 \r\n\t\t\tend\r\n\t\r\n from  CheckBase\r\n<\/pre>\n<p>NIP<\/p>\n<pre lang=\"SQL\">CREATE FUNCTION [dbo].[fnCheckNIP] (@value VARCHAR(100))\r\nRETURNS TABLE\r\nAS\r\nRETURN\r\n\r\n  WITH CheckBase as\r\n  (\r\n  SELECT  \r\n\t\tRTRIM(LTRIM(@value))\r\n\r\n  AS RAWNIP,\r\n\r\n\t\t\tLEFT(@value,9) + \r\n\t\t\t\t\t TRY_CONVERT(VARCHAR(1), ((\r\n\t\t\t\t\t TRY_CONVERT(INT,SUBSTRING(@value,1,1))*6\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,2,1))*5\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,3,1))*7\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,4,1))*2\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,5,1))*3\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,6,1))*4\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,7,1))*5\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,8,1))*6\r\n\t\t\t\t   + TRY_CONVERT(INT,SUBSTRING(@value,9,1))*7)% 11)) \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tas NIP\r\n  )\r\n\r\nselect RAWNIP, NIP,\r\n  isValid = case when  RAWNIP = NIP \r\n\t\t\tand RAWNIP like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'  \r\n\t\t\tthen \r\n\t\t\t\t1 \r\n\t\t\telse \r\n\t\t\t\t0 \r\n\t\t\tend\r\n\t\r\n from  CheckBase\r\n<\/pre>\n<p>REGON<\/p>\n<pre lang=\"SQL\">ALTER FUNCTION [dbo].[fnCheckREGON] (@value VARCHAR(100))\r\nRETURNS TABLE\r\nAS\r\nRETURN\r\n\r\n  WITH CheckBase as\r\n  (\r\n  SELECT  \r\n\t\tRTRIM(LTRIM(@value))\r\n\r\n  AS RAWREGON,\r\n\r\n\t\t\tLEFT(@value,8) +  \r\n\t\t\t\tREPLACE(\r\n\t\t\t\t\tTRY_CONVERT(VARCHAR(1), \r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\tTRY_CONVERT(INT,SUBSTRING(@value,1,1))*8\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,2,1))*9\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,3,1))*2\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,4,1))*3\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,5,1))*4\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,6,1))*5\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,7,1))*6\r\n\t\t\t\t\t\t+TRY_CONVERT(INT,SUBSTRING(@value,8,1))*7\r\n\t\t\t\t\t\t) % 11)),'*','0')  \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tas REGON\r\n  )\r\n\r\nselect RAWREGON, REGON,\r\n  isValid = case when  RAWREGON = REGON \r\n\t\t\tand RAWREGON like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'  \r\n\t\t\tthen \r\n\t\t\t\t1 \r\n\t\t\telse \r\n\t\t\t\t0 \r\n\t\t\tend\r\n\t\r\n from  CheckBase\r\n<\/pre>\n<p>Przyk\u0142ady wywo\u0142ania<\/p>\n<pre lang=\"SQL\"> select * from  [dbo].[fnCheckPESEL] ('00000000001')\r\n select * from  [dbo].[fnCheckREGON] ('000000001')\r\n select * from  [dbo].[fnCheckNIP]\t('0000000001')\r\n<\/pre>\n<p>Wynik dzia\u0142ania<\/p>\n<p>&nbsp;<\/p>\n<p>RAWPESEL PESEL isValid<br \/>\n00000000001 00000000000 0<\/p>\n<p>RAWREGON REGON isValid<br \/>\n000000001 000000000 0<\/p>\n<p>RAWNIP NIP isValid<br \/>\n0000000001 0000000000 0<\/p>\n<p>Ka\u017cda z tych funkcji jest zbudowana na podstawie tego samego schematu.<br \/>\nNa poczatku pobieramy na wej\u015bciu dan\u0119 do weryfikacji, nast\u0119pnie pobieramy cze\u015b\u0107 danych bez sumy kontrolnej i wyliczany na jej podstawie brakuj\u0105c\u0105 sum\u0119 kontroln\u0105. Je\u015bli tak spreparowany identyfikator jest to\u017csami z wej\u015bciowym i dodatkowo sk\u0142ada si\u0119 z samych cyfr, mo\u017cemy uzna\u0107, ze mamy do czynienia z poprawnymi danymi. W ten spos\u00f3n wyznaczana jest kolumna isValid.<\/p>\n<p>Jak mo\u017cna je zastosowa\u0107 ?<\/p>\n<pre lang=\"SQL\">select 'PESEL detected' as Status,\r\nfn.isValid,d.DataValue,d.idruletype,d.RuleName,fn.*,\r\nt.* from DaneOsoboweDane d \r\njoin DaneOsoboweTabele t\r\non (t.lp=d.lp)\r\ncross apply [dbo].[fnCheckPESEL] (d.DataValue) as fn \r\nwhere fn.isValid=1\r\n\r\n select 'REGON detected' as Status,\r\nfn.isValid,d.DataValue,d.idruletype,d.RuleName,fn.*,\r\nt.* from DaneOsoboweDane d \r\njoin DaneOsoboweTabele t\r\non (t.lp=d.lp)\r\ncross apply [dbo].[fnCheckREGON] (d.DataValue) as fn \r\nwhere fn.isValid=1\r\n\r\n\r\nselect 'NIP detected' as Status,\r\nfn.isValid,d.DataValue,d.idruletype,d.RuleName,fn.*,\r\nt.* from DaneOsoboweDane d \r\njoin DaneOsoboweTabele t\r\non (t.lp=d.lp)\r\ncross apply [dbo].[fnCheckNIP] (d.DataValue) as fn \r\nwhere fn.isValid=1\r\n\r\n<\/pre>\n<p>Przydatne strony:<\/p>\n<p><a href=\"http:\/\/walidator.testerzy.pl\/\">http:\/\/walidator.testerzy.pl\/<\/a><\/p>\n<p><a href=\"http:\/\/zylla.wipos.p.lodz.pl\/ut\/nip-rego.html\">http:\/\/zylla.wipos.p.lodz.pl\/ut\/nip-rego.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W poprzedniej cz\u0119\u015bci\u00a0 przygotowali\u015bmy szkic\u00a0 procedury sk\u0142adowanej implementuj\u0105cej prosty mechanizm wykrywania danych osobowych. To czego zabrak\u0142o, to wykorzystanie funkcji tabelarycznych\u00a0 do wykrywania tych danych, kt\u00f3re posiadaj\u0105 sum\u0119 kontroln\u0105 i same wyra\u017cenia regularne mog\u0105 nie wystarczy\u0107. Zajmijmy si\u0119\u00a0\u00a0 identyfikatorami PESEL, NIP, &hellip; <a href=\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\">Continued<\/a><\/p>\n","protected":false},"author":1,"featured_media":1073,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14,13,2],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko\" \/>\n<meta property=\"og:description\" content=\"W poprzedniej cz\u0119\u015bci\u00a0 przygotowali\u015bmy szkic\u00a0 procedury sk\u0142adowanej implementuj\u0105cej prosty mechanizm wykrywania danych osobowych. To czego zabrak\u0142o, to wykorzystanie funkcji tabelarycznych\u00a0 do wykrywania tych danych, kt\u00f3re posiadaj\u0105 sum\u0119 kontroln\u0105 i same wyra\u017cenia regularne mog\u0105 nie wystarczy\u0107. Zajmijmy si\u0119\u00a0\u00a0 identyfikatorami PESEL, NIP, &hellip; Continued\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\" \/>\n<meta property=\"og:site_name\" content=\"W chmurze o chmurze i nie tylko\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-03T21:41:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-18T12:52:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/04\/sql-glass.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"467\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"djkormo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"djkormo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\"},\"author\":{\"name\":\"djkormo\",\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"headline\":\"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3\",\"datePublished\":\"2018-03-03T21:41:47+00:00\",\"dateModified\":\"2019-08-18T12:52:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\"},\"wordCount\":202,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"articleSection\":[\"implementacja\",\"RODO\",\"t-sql\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\",\"url\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\",\"name\":\"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko\",\"isPartOf\":{\"@id\":\"https:\/\/wchmurze.cloud\/#website\"},\"datePublished\":\"2018-03-03T21:41:47+00:00\",\"dateModified\":\"2019-08-18T12:52:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/wchmurze.cloud\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wchmurze.cloud\/#website\",\"url\":\"https:\/\/wchmurze.cloud\/\",\"name\":\"W chmurze o chmurze i nie tylko\",\"description\":\"W chmurze o chmurze i nie tylko\",\"publisher\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wchmurze.cloud\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323\",\"name\":\"djkormo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g\",\"caption\":\"djkormo\"},\"logo\":{\"@id\":\"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/wchmurze.cloud\/index.php\/author\/djkormo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko","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:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/","og_locale":"pl_PL","og_type":"article","og_title":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko","og_description":"W poprzedniej cz\u0119\u015bci\u00a0 przygotowali\u015bmy szkic\u00a0 procedury sk\u0142adowanej implementuj\u0105cej prosty mechanizm wykrywania danych osobowych. To czego zabrak\u0142o, to wykorzystanie funkcji tabelarycznych\u00a0 do wykrywania tych danych, kt\u00f3re posiadaj\u0105 sum\u0119 kontroln\u0105 i same wyra\u017cenia regularne mog\u0105 nie wystarczy\u0107. Zajmijmy si\u0119\u00a0\u00a0 identyfikatorami PESEL, NIP, &hellip; Continued","og_url":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/","og_site_name":"W chmurze o chmurze i nie tylko","article_published_time":"2018-03-03T21:41:47+00:00","article_modified_time":"2019-08-18T12:52:26+00:00","og_image":[{"width":700,"height":467,"url":"https:\/\/wchmurze.cloud\/wp-content\/uploads\/2018\/04\/sql-glass.jpg","type":"image\/jpeg"}],"author":"djkormo","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"djkormo","Szacowany czas czytania":"3 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#article","isPartOf":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/"},"author":{"name":"djkormo","@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"headline":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3","datePublished":"2018-03-03T21:41:47+00:00","dateModified":"2019-08-18T12:52:26+00:00","mainEntityOfPage":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/"},"wordCount":202,"commentCount":0,"publisher":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"articleSection":["implementacja","RODO","t-sql"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/","url":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/","name":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3 - W chmurze o chmurze i nie tylko","isPartOf":{"@id":"https:\/\/wchmurze.cloud\/#website"},"datePublished":"2018-03-03T21:41:47+00:00","dateModified":"2019-08-18T12:52:26+00:00","breadcrumb":{"@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wchmurze.cloud\/index.php\/2018\/03\/03\/generowanie-losowych-odpowiednikow-dla-danych-wrazliwych-dla-rodo-czesc-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/wchmurze.cloud\/"},{"@type":"ListItem","position":2,"name":"Generowanie losowych odpowiednik\u00f3w dla danych wra\u017cliwych dla RODO . Cz\u0119\u015b\u0107 3"}]},{"@type":"WebSite","@id":"https:\/\/wchmurze.cloud\/#website","url":"https:\/\/wchmurze.cloud\/","name":"W chmurze o chmurze i nie tylko","description":"W chmurze o chmurze i nie tylko","publisher":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wchmurze.cloud\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":["Person","Organization"],"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/9832cc6f86f99f541d983d2b8d60f323","name":"djkormo","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/14a901b808871fa98086ae259c45d646?s=96&d=mm&r=g","caption":"djkormo"},"logo":{"@id":"https:\/\/wchmurze.cloud\/#\/schema\/person\/image\/"},"url":"https:\/\/wchmurze.cloud\/index.php\/author\/djkormo\/"}]}},"_links":{"self":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/316"}],"collection":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/comments?post=316"}],"version-history":[{"count":9,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/316\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/posts\/316\/revisions\/361"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/media\/1073"}],"wp:attachment":[{"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/media?parent=316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/categories?post=316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wchmurze.cloud\/index.php\/wp-json\/wp\/v2\/tags?post=316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}