import Ġjava . security . Message Digest Ċ Ċ // ĠGeneric Ġinterface Ġto Ġdescribe Ġcontents Ġof Ġthe Ġmer ke Ċ sealed Ġinterface ĠContent Ġ{ ĊĠĠĠ Ġvar Ġdata : ĠString ĊĠĠĠ Ġfun Ġcalculate Hash (): ĠbyteArray ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ċ } Ċ Ċ // ĠExample Ġclass Ġwith Ġsha - 2 5 6 Ġhash Ġstrategy Ċ class ĠContent _ Sha 2 5 6 ( override Ġvar Ġdata : ĠString ) Ġ: ĠContent Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcalculate Hash () Ġ: ĠbyteArray { ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage Digest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInstance (" SHA - 2 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. digest ( data . toByteArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ("", Ġ{ Ġstr , Ġit Ġ-> Ġstr Ġ+ Ġ"% 0 2 x ". format ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . data ĊĠĠĠ Ġ} Ċ }