小编sol*_*dau的帖子

C#加密到PHP解密

我正在尝试在C#中加密一些(cookie)数据,然后在PHP中解密它.我选择使用Rijndael加密.我几乎让它工作,除了只有部分文本被解密!我从这个例子开始工作:用C#解密PHP加密字符串

这是我正在加密的文本(JSON)(删除了敏感信息):

{"DisplayName":"xxx", "Username": "yyy", "EmailAddress":"zzz"}
Run Code Online (Sandbox Code Playgroud)

所以我登录到C#app,它从存储的Key和IV创建/编码cookie,然后重定向到应该解密/读取cookie的PHP应用程序.当我解密cookie时,它出现如下:

{"DisplayName":"xxx","F?A ;??HP=D???????4??z????????k?#E???R?j?5?\?t. t?D??" 
Run Code Online (Sandbox Code Playgroud)

更新:我已经进一步了,这就是结果

string(96) "{"DisplayName":"xxx","Username":"yyy","EmailAddress"?)???-?J??k/VV-v? ?9?B`7^" 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它开始解密它,但后来搞砸了......

当解密字符串时它出来是正确的(使用填充,我有一个删除填充的函数),但如果我将测试字符串改为一个字符,我会再次得到垃圾:

B?nHL?Ek    ?¿??U?lO????O??M??NO/?f.M???L??CC?Y>F??~?qd?+
Run Code Online (Sandbox Code Playgroud)

这是我用来生成随机密钥和IV的c#代码:

更新:我现在只使用静态键/ IV,它们是:

Key: lkirwf897+22#bbtrm8814z5qq=498j5
IV: 741952hheeyy66#cs!9hjv887mxx7@8y
Run Code Online (Sandbox Code Playgroud)

RijndaelManaged symmetricKey = new RijndaelManaged();
symmetricKey.BlockSize = 256;
symmetricKey.KeySize = 256;
symmetricKey.Padding = PaddingMode.Zeros;
symmetricKey.Mode = CipherMode.CBC;
string key = Convert.ToBase64String(symmetricKey.Key);
string IV = Convert.ToBase64String(symmetricKey.IV);
Run Code Online (Sandbox Code Playgroud)

然后,我将密钥和IV保存到数据库中,以便稍后检索以进行编码/解码.

这是完整的加密类:

public static class Encryption
    {
        public static string Encrypt(string prm_text_to_encrypt, string prm_key, string prm_iv)
        {
            var sToEncrypt = prm_text_to_encrypt;

            var rj = new RijndaelManaged()
            { …
Run Code Online (Sandbox Code Playgroud)

php c# encryption cookies encryption-symmetric

18
推荐指数
2
解决办法
1万
查看次数

EF查询到Oracle抛出"ORA-12704:字符集不匹配"

我正在尝试将来自Oracle的EF中的几个列组合在一起,然后执行以.Contains()下列:

public IEnumerable<User> SearchUsers(string search)
{
    search = search.ToLower();

    return _securityUow.Users
            .Where(u => (u.FirstName.ToLower() + " " + u.LastName.ToLower() + " (" + u.NetId.ToLower() + ")").Contains(search))
            .OrderBy(u => u.LastName)
            .ThenBy(u => u.FirstName)
            .AsEnumerable();
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个例外:

{
  "Message": "An error has occurred.",
  "ExceptionMessage": "An error occurred while executing the command definition. See the inner exception for details.",
  "ExceptionType": "System.Data.Entity.Core.EntityCommandExecutionException",
  "StackTrace": "   at SoftwareRegistration.WebUI.Controllers.Api.V1.UserContactController.Lookup(String search) in C:\LocalRepository\OnlineSupport\SoftwareRegistration\trunk\release\SoftwareRegistration\SoftwareRegistration.WebUI\Controllers\Api\V1\UserContactController.cs:line 40\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n …
Run Code Online (Sandbox Code Playgroud)

.net c# oracle entity-framework

13
推荐指数
1
解决办法
5360
查看次数

找不到错误页面,使用自定义错误页面抛出ELMAH错误

我对Global.asax做了一些修改,以便我可以显示自定义错误页面(403,404和500)这是代码:

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            //FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

        protected void Application_Error(object sender, EventArgs e)
        {
            if (Context.IsCustomErrorEnabled)
            {
                ShowCustomErrorPage(Server.GetLastError());
            }
        }

        private void ShowCustomErrorPage(Exception exception)
        {
            HttpException httpException = exception as HttpException;
            if (httpException == null)
            {
                httpException = new HttpException(500, "Internal Server Error", exception);
            }

            Response.Clear();
            RouteData routeData = new RouteData();
            routeData.Values.Add("controller", "Error");
            routeData.Values.Add("fromAppErrorEvent", true);

            switch (httpException.GetHttpCode())
            {
                case 403:
                    routeData.Values.Add("action", "AccessDenied");
                    break;

                case 404:
                    routeData.Values.Add("action", "NotFound");
                    break;

                case 500: …
Run Code Online (Sandbox Code Playgroud)

c# elmah asp.net-mvc-4

11
推荐指数
1
解决办法
5677
查看次数

Android:合并/连接两个音频文件会挂起应用程序

我正在使用mp4parser附加两个音频文件.追加已完成,但速度很慢,不知道是什么问题.

在这一行调试器卡住大音频文件,例如大约30分钟的音频文件.

Container out = new DefaultMp4Builder().build(result);

这是代码.

Movie[] inMovies = null;
                inMovies = new Movie[]{
                        MovieCreator.build(fileOne),
                        MovieCreator.build(fileTwo)};
                List<Track> audioTracks = new LinkedList<Track>();

                for (Movie m : inMovies) {
                    for (Track t : m.getTracks()) {
                        if (t.getHandler().equals("soun")) {
                            audioTracks.add(t);
                        }
                    }
                }
                Movie result = new Movie();
                if (audioTracks.size() > 0) {
                    result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()])));
                }
                Container out = new DefaultMp4Builder().build(result);
                String fileName = getFilename();
                FileChannel fc = new RandomAccessFile(String.format(fileName), "rw").getChannel();
                out.writeContainer(fc);
                fc.close();
Run Code Online (Sandbox Code Playgroud)

manifest资源配置文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ehrlite"
    android:versionCode="1"
    android:versionName="1.0" > …
Run Code Online (Sandbox Code Playgroud)

performance merge android audio-recording mp4parser

9
推荐指数
1
解决办法
359
查看次数

在 Vuex 状态中访问 Nuxt `$config`

根据 Nuxt 文档,我应该能够访问$config从我的 vuex 商店中访问:

“使用您的配置值:然后您可以通过使用或来使用页面、商店、组件和插件中的上下文,在任何地方访问这些值。” (强调,来自this.$configcontext.$confighttps://nuxtjs.org/docs/2.x/directory-struct/nuxt-config#runtimeconfig

当我尝试$config像这样访问我的商店时:

export const state = () => (
    {
        // App vital details
        app: {
            name: 'MyApp',
            appVersion: this.$config.appVersion,
            copyright: helpers.getCurrentYear()
        },
    }
)
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到一条错误消息:“无法读取未定义的属性'$config'”如果我尝试使用context.$config则会收到错误:“上下文未定义”

我知道$config否则“有效”,因为我可以在模板中使用 访问它$config.appVersion,但如何在我的商店中正确访问它?

vuex nuxt.js

9
推荐指数
1
解决办法
5853
查看次数

使用 Typescript 扩展传单标记

我正在开发一个使用 Typescript 和 Leaflet 的项目。

扩展传单标记的记录(JS)方法如下:

L.Marker.Foo = L.Marker.extend({...});
Run Code Online (Sandbox Code Playgroud)

然而,Typescript 抱怨道:

Property 'Foo' does not exist on type 'typeof Marker'.
Run Code Online (Sandbox Code Playgroud)

我该如何更改它以避免编译错误?

leaflet typescript

6
推荐指数
1
解决办法
2658
查看次数

Composer 强制安装包忽略依赖版本

我想将reliese/laravel( https://github.com/reliese/laravel/ ) 包安装到我的 Laravel 6+ 项目中。reliese/laravel需要"illuminate/support": "~5.1",,但我的版本现在是 6+。我已经查看了该reliese/laravel软件包,它应该仍然可以在 6+ 上使用。我怎样才能强制作曲家安装这个包?我已经尝试过了--ignore-platform-reqs,但没有成功。

php laravel composer-php

5
推荐指数
1
解决办法
2万
查看次数

Perl 哈希:$hash{key} 与 $hash-&gt;{key}

Perl newb 在这里,抱歉问了一个愚蠢的问题,但是在谷歌上搜索->编码上下文很困难......有时,我会像这样访问散列:$hash{key}有时这不起作用,所以我像这样访问它$hash->{key}。这里发生了什么?为什么它有时以一种方式工作而不是另一种方式?

perl reference key hashmap dereference

5
推荐指数
1
解决办法
102
查看次数