几个月前,我开始在这家编程公司工作.他们使用的一种做法是在SQL而不是C#中尽可能多地完成工作.
所以,让我说我有一个写一些文件列表的简单例子:
是这样的:
string SQL = @"
SELECT f.FileID,
f.FileName,
f.FileExtension,
'/files/' + CAST(u.UserGuid AS VARCHAR(MAX)) + '/' + (f.FileName + f.FileExtension) AS FileSrc,
FileSize=
CASE
WHEN f.FileSizeB < 1048576 THEN CAST(CAST((f.FileSizeB / 1024) AS DECIMAL(6, 2)) AS VARCHAR(8)) + ' KB'
ELSE CAST(CAST((f.FileSizeB / 1048576) AS DECIMAL(6, 2)) AS VARCHAR(8)) + ' MB'
END
FROM Files f
INNER JOIN Users u
ON f.UserID = u.UserID
";
// some loop for writing results {
// write...
// }
Run Code Online (Sandbox Code Playgroud)
比这样的事情更快或更好:
string …Run Code Online (Sandbox Code Playgroud) 我需要使用RSA-SHA1签名和.PFX证书的私钥来签名字符串.这是我的代码:
String rawString = "1234567890";
byte[] signed = null;
FileInputStream cert = new FileInputStream("/sdcard/cert.pfx");
KeyStore keyStore = KeyStore.getInstance("pkcs12");
keyStore.load(cert, "cert_password".toCharArray());
String alias = keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey)keyStore.getKey(alias, "cert_password".toCharArray());
Signature instance = Signature.getInstance("SHA1withRSA");
instance.initSign((PrivateKey)privateKey);
instance.update(rawString.getBytes());
signed = instance.sign();
TextView mTextView = (TextView) findViewById(R.id.signed_message);
mTextView.setText(md5(bytes2String(signed)));
Run Code Online (Sandbox Code Playgroud)
我确实得到了一个漂亮的MD5,但是,我在PHP中做同样的事情,我得到的PHP结果与Android中的不同.我知道PHP的一个是正确的...所以Android版本有什么问题?
我注意到,如果我使用new String(signed)而不是使用bytes2String(signed)或者即使我使用,Android结果也会有所不同signed.toString()
我将它用于MD5:https://stackoverflow.com/a/4846511/1176497
和bytes2String来自(使用SHA1和RSA与java.security.Signature与MessageDigest和Cipher):
private static String bytes2String(byte[] bytes) {
StringBuilder string = new StringBuilder();
for (byte b : bytes) {
String hexString = Integer.toHexString(0x00FF …Run Code Online (Sandbox Code Playgroud) 我有Zebra MZ 220打印机,我需要通过蓝牙从我的Android应用程序打印二维码.我能够打印文本和图像,但不能打印QR码.
我发现了这个:https://km.zebra.com/kb/index?page = content&id = SO7133&actp = LIST_POPULAR
所以,这是我的代码:
new Thread(new Runnable() {
public void run() {
try {
// Instantiate connection for given Bluetooth® MAC Address.
ZebraPrinterConnection thePrinterConn = new BluetoothPrinterConnection("XX:XX:XX:XX:XX:XX");
// Initialize
Looper.prepare();
// Open the connection - physical connection is established here.
thePrinterConn.open();
// SO THIS SHOULD PRINT THE QR CODE BUT DOESN'T :(
thePrinterConn.write("! 0 200 200 500 1\r\nB QR 10 100 M 2 U 10\r\nMA,QR code ABC123\r\nENDQR\r\nFORM\r\nPRINT".getBytes());
//Make sure the …Run Code Online (Sandbox Code Playgroud)