我必须将信用卡号加密并作为字符串存储在数据库中.我做了以下事情
RijndaelManaged rijMan = new RijndaelManaged();
byte[] encrypt = Encrypt(txtCredit.Text, rijMan.Key, rijMan.IV);
string card = Convert.ToBase64String(encrypt);
string key = Convert.ToBase64String(rijMan.Key);
string iv = Convert.ToBase64String(rijMan.IV);
Run Code Online (Sandbox Code Playgroud)
这是加密功能:
public static byte[] Encrypt(string message, byte[] key, byte[] iv)
{
byte[] encrypted;
using (RijndaelManaged rijMan = new RijndaelManaged())
{
rijMan.Key = key;
rijMan.IV = iv;
ICryptoTransform encrypt = rijMan.CreateEncryptor(rijMan.Key, rijMan.IV);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encrypt, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(message);
} …Run Code Online (Sandbox Code Playgroud) 我有一个按钮的哈希映射到矩阵中的对应点.例如,在3X3矩阵中,btn0为(0,0),依此类推.该点是一个带有2个坐标变量的int类.我的Hashmap如下所示:
public final static HashMap<Button, Point> buttonPoint = new HashMap<Button, Point>();
buttonPoint.put(btn0, new Point(0,0));
buttonPoint.put(btn1, new Point(0,1));
buttonPoint.put(btn2, new Point(0,2));
buttonPoint.put(btn3, new Point(1,0));
...
Run Code Online (Sandbox Code Playgroud)
我进行了一些计算,得出了一个说法(1,0).现在我想从这些坐标中获取按钮.我做以下事情:
Button selectedButton = null;
for(java.util.Map.Entry<Button, Point> entry : buttonPoint.entrySet()){
if(Objects.equals(selectedPoint, entry.getValue())){
selectedButton=entry.getKey();
}
}
Run Code Online (Sandbox Code Playgroud)
但是selectedButton仍然是null.我调试了代码,我发现迭代中某些点的值是相等的,但if条件永远不会变为真.关于Hashmaps有什么我想念的吗?或者还有其他方法吗?解决方案的任何链接或方向都会有所帮助.提前致谢.