我一直在我的应用程序层(模型)和我的数据库层(引发错误的存储过程)中实施业务规则.
由于以下几个原因,我一直在复制我在两个地方的验证:
什么是正确的平衡?
database stored-procedures business-rules n-tier-architecture
我需要签署Android应用程序(.apk).
我有.pfx档案.我.cer通过Internet Explorer 将其转换为文件,然后转换.cer为.keystore使用keytool.然后我尝试.apk与jarsigner 签约,但它说.keystore不满足私钥.
我做错了什么?
我对加密知之甚少,但我能够让AES在某种程度上使用PHP.以下是我正在使用的几个函数:
function aes_decrypt($val,$ky)
{
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
for($a=0;$a<strlen($ky);$a++)
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
$mode = MCRYPT_MODE_ECB;
$enc = MCRYPT_RIJNDAEL_128;
$dec = @mcrypt_decrypt($enc, $key, $val, $mode, @mcrypt_create_iv( @mcrypt_get_iv_size($enc, $mode), MCRYPT_RAND) );
return rtrim($dec,(( ord(substr($dec,strlen($dec)-1,1))>=0 and ord(substr($dec, strlen($dec)-1,1))<=16)? chr(ord( substr($dec,strlen($dec)-1,1))):null));
}
function aes_encrypt($val,$ky)
{
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
for($a=0;$a<strlen($ky);$a++)
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
$mode=MCRYPT_MODE_ECB;
$enc=MCRYPT_RIJNDAEL_128;
$val=str_pad($val, (16*(floor(strlen($val) / 16)+(strlen($val) % 16==0?2:1))), chr(16-(strlen($val) % 16)));
return mcrypt_encrypt($enc, $key, $val, $mode, mcrypt_create_iv( mcrypt_get_iv_size($enc, $mode), MCRYPT_RAND));
}
Run Code Online (Sandbox Code Playgroud)
这些是对mcrypt的PHP文档页面上的注释稍作修改的.(我从dev_urandom更改为rand,因为我在windows框中,dev_urandom不可用.)
无论如何,我在这个函数中使用的键定义如下:
define("PSK", pack("H*", "abcd7b5ca46e12345678a8161fdacee9"));
Run Code Online (Sandbox Code Playgroud)
我把这个函数称为:
echo bin2hex(aes_encrypt("wootwootwootwootwootwootwoo", PSK));
现在,生成的十六进制字符串的前16个字节(32位)很好.接下来的16个字节与预期的不匹配.
请参阅,我将此数据发布到外部Web服务,然后将其解密.我(遗憾的是)不能给出我没有分发加密密钥和数据的测试用例.我非常抱歉,但我希望熟悉mcrypt的人可以看看这个并告诉我我做错了什么.
再次,对于缺乏可靠的测试用例感到遗憾,但我非常感谢您提供的任何帮助!
编辑:我发布的似乎是我的提供商正在使用null …
我开始使用以下服务:
private ServiceConnection _serviceConnection = new ServiceConnection() {...}
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
我想"重新启动"该服务.(我们不要争论为什么我要这样做)我这样做:
unbindService(_serviceConnection);
// Do some initialization on service
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
我注意到服务没有死(onDestroy不运行),直到我调用下一个bindService(); 因此,我在服务上做的一些静态初始化已被onDestroy()实现清除.
问题:如何确保unbindService()将停止服务(运行onDestory()),以便我可以在重新运行bindService()之后进行初始化?
我有一个家庭作业,头文件提供给我们,并且是不可更改的.我无法弄清楚如何正确使用"显示"功能,所以这里是相关的代码.
头文件:
#ifndef SET_
#define SET_
typedef int EType;
using namespace std;
#include <iostream>
class Set
{
private:
struct Node
{
EType Item; // User data item
Node * Succ; // Link to the node's successor
};
unsigned Num; // Number of user data items in the set
Node * Head; // Link to the head of the chain
public:
// Various functions performed on the set
// Display the contents of the set
//
void display( ostream& ) const; …Run Code Online (Sandbox Code Playgroud) 我在序列化时观察到一种奇怪的行为,而不是反序列化具有类型成员的类,该类List<T>在构造时填充了默认值.与基于数组的属性不同List<T>,XmlSerializer在反序列化时不会清空类型的属性.
这是我的代码:
public class Program
{
public class Config
{
public Config()
{
Test1 = new List<string>() {"A", "B"};
Test2 = new String[] {"A", "B"};
}
public List<string> Test1 {get;set;}
public string[] Test2 {get;set;}
}
public static void Main()
{
XmlSerializer xmlSerializer =
new XmlSerializer(typeof(Config));
using(Stream s = new MemoryStream())
{
xmlSerializer.Serialize(s, new Config());
s.Position = 0;
xmlSerializer.Serialize(Console.Out,
xmlSerializer.Deserialize(s));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
<?xml version="1.0" encoding="ibm850"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Test1>
<string>A</string>
<string>B</string>
<string>A</string>
<string>B</string>
</Test1>
<Test2> …Run Code Online (Sandbox Code Playgroud) 我有一个名为评论的表.每个评论我都有评论ID,.
在我的用户屏幕上,我可以为每个用户添加多个注释..因此注释ID需要存储为1,2,3,...等等...这意味着我为用户添加了1 2 3注释ID ..
如何将这些逗号分隔值存储到表列中?
谢谢
我正在使用jquery-ui datepicker来显示多个月.
弹出窗口显示这些月份1低于另一个,有没有办法让下一个月显示在右边?
我正在尝试将一些文本添加到与每个条形相同高度的水平条形图的右侧,但是,text()和axis()似乎都没有在与每个条形对应的高度处绘制这些文本.
这是一个类似的情节
x <- runif(10, 0,1)
y <- matrix(c(x, 1-x), nrow=2, ncol=10, byrow=TRUE)
barplot(y, horiz=TRUE, beside=FALSE, names.arg=seq(1,10,1), las=1, xlim=c(0, 1.2))
Run Code Online (Sandbox Code Playgroud)
这两个选项都没有正确对齐,缩放如何在这里工作?
axis(4, at=seq(1,10,1), labels=seq(1,10,1))
text(1.1, seq(1,10,1), labels=seq(1, 10, 1))
Run Code Online (Sandbox Code Playgroud)