如何在Java中加密String

如何在Java中加密String

我需要的是加密将显示在二维条码中的字符串(PDF-417),这样当有人想到扫描它时就不会有任何可读性。

其他需求:

  • 不应该复杂

  • 它不应包含RSA,PKI基础设施,密钥对等。

它必须足够简单,以摆脱窥探的人,并易于解密其他有兴趣获取数据的公司。他们打电话给我们,我们告诉他们标准或给他们一些简单的密钥,然后可以用于解密。

可能这些公司可以使用不同的技术,因此坚持一些与某些特殊平台或技术无关的标准会更好。

你有什么建议?有一些Java类做encrypt()decrypt()没有太多的并发症,实现高安全标准?


吃鸡游戏
浏览 655回答 3
3回答

万千封印

我正在使用Sun的Base64Encoder / Decoder,它可以在Sun的JRE中找到,以避免在lib中使用另一个JAR。从使用OpenJDK或其他一些JRE开始,这很危险。除此之外,还有另一个原因我应该考虑使用带有编码器/解码器的Apache commons lib吗?public&nbsp;class&nbsp;EncryptUtils&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;final&nbsp;String&nbsp;DEFAULT_ENCODING&nbsp;=&nbsp;"UTF-8";&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;BASE64Encoder&nbsp;enc&nbsp;=&nbsp;new&nbsp;BASE64Encoder(); &nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;BASE64Decoder&nbsp;dec&nbsp;=&nbsp;new&nbsp;BASE64Decoder(); &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;String&nbsp;base64encode(String&nbsp;text)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;enc.encode(text.getBytes(DEFAULT_ENCODING)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(UnsupportedEncodingException&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}//base64encode &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;String&nbsp;base64decode(String&nbsp;text)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;String(dec.decodeBuffer(text),&nbsp;DEFAULT_ENCODING); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(IOException&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}//base64decode &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;txt&nbsp;=&nbsp;"some&nbsp;text&nbsp;to&nbsp;be&nbsp;encrypted"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;key&nbsp;=&nbsp;"key&nbsp;phrase&nbsp;used&nbsp;for&nbsp;XOR-ing"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(txt&nbsp;+&nbsp;"&nbsp;XOR-ed&nbsp;to:&nbsp;"&nbsp;+&nbsp;(txt&nbsp;=&nbsp;xorMessage(txt,&nbsp;key))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;encoded&nbsp;=&nbsp;base64encode(txt);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("&nbsp;is&nbsp;encoded&nbsp;to:&nbsp;"&nbsp;+&nbsp;encoded&nbsp;+&nbsp;"&nbsp;and&nbsp;that&nbsp;is&nbsp;decoding&nbsp;to:&nbsp;"&nbsp;+&nbsp;(txt&nbsp;=&nbsp;base64decode(encoded))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("XOR-ing&nbsp;back&nbsp;to&nbsp;original:&nbsp;"&nbsp;+&nbsp;xorMessage(txt,&nbsp;key)); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;String&nbsp;xorMessage(String&nbsp;message,&nbsp;String&nbsp;key)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(message&nbsp;==&nbsp;null&nbsp;||&nbsp;key&nbsp;==&nbsp;null)&nbsp;return&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;keys&nbsp;=&nbsp;key.toCharArray(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;mesg&nbsp;=&nbsp;message.toCharArray(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ml&nbsp;=&nbsp;mesg.length; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;kl&nbsp;=&nbsp;keys.length; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;newmsg&nbsp;=&nbsp;new&nbsp;char[ml]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;ml;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newmsg[i]&nbsp;=&nbsp;(char)(mesg[i]&nbsp;^&nbsp;keys[i&nbsp;%&nbsp;kl]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//for&nbsp;i &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;String(newmsg); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}//xorMessage}//class
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java