package Ġcom . stripe . android Ċ Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġjava . security . Message Digest Ċ import Ġjava . security . NoSuch AlgorithmException Ċ import Ġjava . util . Locale Ċ Ċ /** Ċ Ġ* ĠUtility Ġclass Ġfor Ġcommon Ġtext - related Ġoperations Ġon ĠStripe Ġdata Ġcoming Ġfrom Ġthe Ġserver . Ċ Ġ*/ Ċ object ĠStripe TextUtils Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġa Ġcard Ġnumber Ġthat Ġmay Ġhave Ġspaces Ġbetween Ġthe Ġnumbers Ġinto Ġone Ġwithout Ġany Ġspaces . ĊĠĠĠĠ Ġ* ĠNote : Ġmethod Ġdoes Ġnot Ġcheck Ġthat Ġall Ġcharacters Ġare Ġdigits Ġor Ġspaces . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcard Number With Spaces Ġa Ġcard Ġnumber , Ġfor Ġinstance Ġ" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 " ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinput Ġnumber Ġminus Ġany Ġspaces , Ġfor Ġinstance Ġ" 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 ". ĊĠĠĠĠ Ġ* ĠReturns Ġ` null ` Ġif Ġthe Ġinput Ġwas Ġ` null ` Ġor Ġall Ġspaces . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġremove Spaces And Hy ph ens ( card Number With Spaces : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcard Number With Spaces . take Unless Ġ{ Ġit . isNull Or Blank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . replace ("\\ s |- ". to Regex (), Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalculate Ġa Ġhash Ġvalue Ġof Ġa ĠString Ġinput Ġand Ġconvert Ġthe Ġresult Ġto Ġa Ġhex Ġstring . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġto Hash Ġa Ġvalue Ġto Ġhash ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġhexadecimal Ġstring ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġfun Ġsha Hash Input ( to Hash : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( to Hash . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdigest Ġ= ĠMessage Digest . getInstance (" SHA - 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġto Hash . toByteArray ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdigest . update ( bytes , Ġ 0 , Ġbytes . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes To Hex ( digest . digest ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( no Such Algorithm : ĠNoSuch AlgorithmException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbytes To Hex ( bytes : ĠByteArray ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("") Ġ{ ĠString . format ( Locale . ROOT , Ġ"% 0 2 x ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toUpperCase ( Locale . ROOT ) ĊĠĠĠ Ġ} Ċ } Ċ